float runden

Hi,

ich würde gern eine float richtig runden:
0.675687 soll mit 4 Kommastellen = 0.6757 ergeben, und nicht abgeschnitten 0.6756
gibt es dafür eine Funktion, oder muss ich sowas zu Fuß machen?

Gruß André

Simple Minds wie ich machen das so:
5 an der richtigen Stelle dazuzählen und danach abschneiden.

In deinem Beispiel:
0.675687 + 0.00005 = 0.675737 ergibt abgeschnitten nach der 4. Stelle: 0.6757

Edit:
Aber mit Float auf einem Arduino zu arbeiten ist generell keine sehr gute Idee…

Hi,

so mache ich das auch gerade, also +0,5 und schneiden.
Ist nur für die Ausgabe von ADC Werten, ich muss nicht damit rechnen.

Gruß André

ich würde gern eine float richtig runden:
0.675687 soll mit 4 Kommastellen = 0.6757 ergeben, und nicht abgeschnitten 0.6756
gibt es dafür eine Funktion, oder muss ich sowas zu Fuß machen?

Serial.println (0.675687, 4) ;

"Richtig runden" heißt: nur die Ausgabe-Anzeige nach Geschmack anpassen.

Blöde Frage: wie schneidest du nach der 4. Stelle ab ?

Hi,

ich spiele im Moment mit einem ADS1115 (16 bit) ADC rum, und schaue wie ich die Ergebnisse ausgebe. Im Messbereich 2,048Volt springen die letzten 2 Digits in 62.5µV Schritten, aber bis 100µV reicht mir in diesem Bereich. Also lasse ich wie Du oben zeigst nur 4 Nachkommastellen stehen.
Ohne die +0,5 ist das Ergebnis noch weniger richtig als ohne.

Aber wie schon geschrieben, im Moment ist es noch spielen, evtl. nehme ich doch einen anderen ADC.

Gruß André

Ohne die +0,5 ist das Ergebnis noch weniger richtig als ohne.

Ich bin verwirrt - und woher weißt Du, was "richtig" ist?

SpaghettiCode:
Hi,

ich spiele im Moment mit einem ADS1115 (16 bit) ADC rum, und schaue wie ich die Ergebnisse ausgebe. Im Messbereich 2,048Volt springen die letzten 2 Digits in 62.5µV Schritten, aber bis 100µV reicht mir in diesem Bereich. Also lasse ich wie Du oben zeigst nur 4 Nachkommastellen stehen.
Ohne die +0,5 ist das Ergebnis noch weniger richtig als ohne.

Aber wie schon geschrieben, im Moment ist es noch spielen, evtl. nehme ich doch einen anderen ADC.

Gruß André

Wieso so kompliziert.
einfach long Wert durch 2 oder 4 Teilen ( 15 bzw 14 bit) und diesen Wert zur Weiterberechnung verwenden.
Grüße Uwe