Ich habe ein System eingerichtet, das eine kompakte Datenkette in JSON parst. Ich verwende eine 19-stellige Nummer, um IDs zu speichern. Leider eine Zahl größer als 17 Ziffern, parseFloat()
rundet die letzten Ziffern.
Dies bricht die gesamte Datenkette. Kann ich das beheben?
Zum Beispiel wird 8246295522085275215
in 8246295522085276000
umgewandelt. Warum ist das?
JavaScript hat nur einen numerischen Typ, der ein Fließkomma mit IEEE 754 doppelter Genauigkeit ist. Das heißt, Sie haben ein Maximum von 52 Bits Genauigkeit, was ein bisschen mehr als 15 Dezimalstellen ist.
Wenn Sie eine höhere Genauigkeit benötigen, müssen Sie eine Bignum-Bibliothek verwenden oder mit Strings arbeiten.
Zahlen in JavaScript verlieren ihre Genauigkeit, wenn sie höher als ein bestimmter Wert sind.
Laut Ссылка sind ganze Zahlen nur bis zu 15 Ziffern zuverlässig ( 9 * 10^15
, um genau zu sein).
Tags und Links javascript math parsefloat