Puoi risolverlo usando .toFixed()
metodo
È il problema del punto galleggiante Dai un'occhiata qui
per esempio:
<script>
alert((1.234567890).toFixed(2))
</script>
Domanda
Che tipo di errori? Come lo risolvo?
1.1 - 1 = 0.10000000000000009
1.0000001+1 = 2.0000001000000003
Soluzione
Puoi risolverlo usando .toFixed()
metodo
È il problema del punto galleggiante Dai un'occhiata qui
per esempio:
<script>
alert((1.234567890).toFixed(2))
</script>
Altri suggerimenti
JavaScript utilizza il tipo di dati galleggiante. I numeri galleggianti non sono mai esatti, quindi non utilizzare == quando si confrontano i dati invece utilizza <e/o>.
Dal comp.lang.javascript FAQ(che sembrano essere al momento):
I numeri ECMAScript sono rappresentati in binario come IEEE-754 (IEC 559) raddoppia, con una risoluzione di 53 bit, che dà una precisione di 15-16 cifre decimali; numeri interi fino a poco più 9e15
sono precisi, ma poche frazioni decimali lo sono. Detto questo, l'aritmetica è il più esatto possibile, ma non più. Le operazioni sui numeri interi sono esatti se il vero risultato e tutti gli intermedi sono numeri interi all'interno di tale intervallo.
In particolare, i risultati non interi non dovrebbero essere normalmente confrontati per l'uguaglianza e i risultati calcolati non interi hanno comunemente bisogno di arrotondamento.