Hi
float hat NICHTS mit Genauigkeit zu tun - eher mit Ungenauigkeit - beim Arduino sind's 6 signifikante Stellen - mehr nicht.
1002,04 geht
1,00204 geht auch
100204,1 geht NICHT - zumindest nicht, wenn Du damit rechnen willst.
Was aber geht, nennt sich
FestkommaarithmetikDabei benutzt man so viele Stellen, wie man braucht und rechnet damit.
Man könnte damit sogar 'von Hand' mit beliebig vielen Stellen rechnen (man braucht für jede Stelle mindestens ein halbes Byte RAM).
ERST für die Anzeige wird da irgendwo ein Komma zwischen angezeigt.
Aus 102936223454237687243658362934 wird plötzlich
1029362234542376872436.58362934 - wow, Zauberei ... verbrennt Ihn ...
Wenn Du hier 100000000 hinzu addierst, wird intern daraus
102936223454237687243
758362934
Und dann zur Ausgabe, hex hex:
1029362234542376872437.58362934
Und Das ist um Welten genauer, als Deine float - auch bei 64Bit.
Wenn Du in humaneren Zahlenbereichen bleibst, reicht Dir vll. uint32_t - da braucht der Arduino 4 Byte für Zahlen bis zu 4'294'967'295 (DAS plus 1 ergibt aber dann Null).
Wenn's MEHR werden müssen, wären 64 Bit noch möglich 18'446'744'073'709'551'615
20 Stellen - also 19 'frei nutzbare Stellen'.
Sofern Du nicht wie ein Weltmeister mit gerade sinnfrei ausgedachte Zahlen multiplizieren willst, sollte Das schon eine Weile reichen.
Das Arduino-Terminal kann 'von Haus aus' nur bis 32 Bit als Dezimal ausgeben - combie hatte hier in den Tiefen des Forum Mal ein template (?) ausgearbeitet, wo man beliebige bis 64 Bit breite Zahlen in ein beliebiges Zahlenformat ausgeben konnte.
MfG