INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Anzahl der Float-Kommastellen bei einem Return
25.07.2015, 16:27 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2015 16:42 von Retian.)
Beitrag #1
Anzahl der Float-Kommastellen bei einem Return
Kann mir jemand bitte helfen und einen Tipp geben, wie man die Anzahl der Kommastellen einer Float-Variablen bei einem Rücksprung mit Return aus einem Unterprogramm festlegt. Standardmäßig werden 2 Kommastellen zurückgegeben. So wie bei einer Print-Anweisung, wo man die Anzahl der Kommastellen definieren kann, funktioniert das bei Return nicht.

Beispiel:

float RohWert2Temp(unsigned int RWert)
{
byte Bit;
float Temp;
float BitWertigkeit[12] = {0.0625, 0.125, 0.25, 0.5, 1, 2, 4, 8, 16, 32, 64, 128};

for (int i = 0; i < 12; i++)
{
Bit = bitRead(RWert, i);
if (Bit == 1) Temp = + Temp + BitWertigkeit[i];
}
if (bitRead(RWert, 12) == 1) Temp *= (-1.0);
Serial.println(Temp, 4);
return Temp;
}

Die Variable Temp wird hier nur mit 2 Kommastellen ans Hauptprogramm zurück gegeben, ich hätte aber gerne 4 Kommastellen.

Danke für eure Hilfe!!!

Sorry, ich ziehe die Frage zurück. Die Rückgabe mit Return ins Hauptprogramm erfolgt doch mit allen Kommastellen. Das Problem liegt im Hauptprogramm, das muss ich mir aber erst genauer ansehen. Danke!!
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2015, 18:09 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2015 23:45 von HaWe.)
Beitrag #2
RE: Anzahl der Float-Kommastellen bei einem Return
hallo,
die Einschränkung ist NUR ein Anzeigeproblem mit Serial.print().
Deine Floats haben IMMER automatisch die vollen 7-stelligen Digits.

Warum die das bei Arduino so blöde machen, verstehe ich auch nicht.
Wenn du Serial irgendwie dazu bringst, alle wirklich vorhandenen Stellen auch wirklich alle auszugeben, wirst du sie auch sehen - vorhanden sind sie jedenfalls.

Ich selber mache das mit sprintf(), aber dazu musst du einen lib.c float patch installieren.
Übrigens auch so ein ärgerlicher Sketch-Blödsinn mit dem sprintf - aber mit patch geht es immerhin.

ps, ach ja:
mit ftoa() geht das umwandeln auch:

Code:
char * ftoa(char * str, double f, int16_t precision) { // convert float to string by precision (digits)
  int32_t  p[] = {0,10,100,1000,10000,100000,1000000,10000000,100000000};
  int32_t  intnum, decimal;
  char * sret = str;

  if(precision>8) precision=8;
  intnum = (long)f;
  itoa( intnum, str, 10);
  while ( *str != '\0') str++;
  *str++ = '.';
  decimal = abs( (long)( (f - intnum ) * p[precision]) );
  itoa( decimal, str, 10);
  return sret;
}

Aufruf:
Code:
char str[16];
float fvar;

// entweder nacheinander aufrufen:
ftoa(str, fvar, 7);
Serial.println(str);
// oder, direkt:
Serial.println( ftoa(str, ftoa,7) );
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  A4988 Driver mit einem Nema 17 Hangloose 3 140 04.09.2016 21:49
Letzter Beitrag: Hangloose
  Rechnen mit float und unsigned long Rudi 3 306 03.06.2016 12:41
Letzter Beitrag: hotsystems
  Kann ich mit einem Arduino ein Gyro für Adroid Simulieren? Demitos 0 411 16.03.2016 18:33
Letzter Beitrag: Demitos
  Ansteuerung von einem Relais mit einem PS2 Controller minigarage 2 339 11.03.2016 15:31
Letzter Beitrag: minigarage
  Wie steuere ich 2 DC Motoren über ein Motorshield mit einem Joystick? Vittelboy 12 5.589 29.12.2015 09:51
Letzter Beitrag: max123
  float in eeprom goldfisch 4 673 28.12.2015 18:54
Letzter Beitrag: Bitklopfer
  Webserver abfragen mit einem Programm arduinofan 2 735 28.11.2015 15:54
Letzter Beitrag: arduinofan
  Brauche Hilfe bei einem Arduino - "Spiel" jalu4601 6 865 10.11.2015 15:09
Letzter Beitrag: jalu4601
  2 Servos mit einem Kippschalter steuern Moba55 9 1.096 01.11.2015 22:47
Letzter Beitrag: hotsystems
Lightbulb Brauche Hilfe bei einem kleinem Arduino-Spiel jalu4601 5 899 23.10.2015 08:35
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste