Arduino, 3 Nachkommastellen?

3 Antworten

Float hat mehr als 2 Nachkommastellen. Benutzt du die String() Methode um den Float auszugeben? Da kannst du als zweiten Parameter angeben wie viele Stellen der String haben soll. Standardmäßig sind das zwei.
So führt:

float val = 0.123456;
String stringVal = String(val,3);  

das im String am Ende „0.123“ steht.

Macht man eine float direkt in die print Funktion wird auch Standardmäßig gerundet, wenn man da aber direkt mit String() in der Print Methode arbeitet kann man das besser steuern.

Da float aber ja nur 32Bit ist geht die Genauigkeit so bis 6-7 Dezimalstellen.

User1234198 
Fragesteller
 28.11.2020, 18:48

Danke👍 ja ich habe einen Printbefehl das ist wohl das problem

Aber wie genau kann ich denn das dann machen? Wenn ich zum Beispiel eine Berechnung habe und dann ein genaues Resultat will? Also z.B 1/10000 rechnen und printen sodass es nicht auf null gerundet wird?

0

Float kann eig mehr Nachkommastellen. Double wäre aber der entsprechende Datentyp mit doppelter Genauigkeit.

Bist du dir sicher das die anderen Nachkommastellen nicht beim ausgegeben abgeschnitten werden. Hier ist ein Beispiel bei bei printf die Nachkommastellen konfigurierst. https://stackoverflow.com/questions/8345581/c-printf-a-float-value#8345605

LisamagPferde04  28.11.2020, 16:56

Auf klassischen Arduinoboards ist ein double wie ein float 32Bit

1