2008-10-06 8 views

Antwort

10

0.002 nicht genau als Basis 2 Zahl dargestellt werden kann. Ähnlich wie, dass 1/3 nicht 10.

1/3 = 0,33333 ... in der Basis von wiederkehrenden vertreten sein. Um die Zahl in der Basis 10 genau darzustellen, benötigen Sie eine unendliche Anzahl von Dezimalziffern.

0.002 ist eine Zahl, die genau in der Basis dargestellt werden können, 10 (wie wir hier sehen), aber nicht in der Basis 2, wie von Computern verwendet. Um diese Zahl genau darzustellen, würde eine unendliche Anzahl von Binärziffern benötigt.

1

Wenn Sie wollen eine schnelle Lösung Sie zum nächsten Tausendstel

abrunden können

Math.round ((1,001 + 0,001) * 1000)/1000

23

Die Javascript Number Klasse hat eine toFixed() Funktion das wird dich bekommen, was du willst.

Sie könnten also tun parseFloat ("1,0019999"). ToFixed (3) und dass Sie würde "1,002".

Der Parameter (3 in diesem Fall) ist die Anzahl der Stellen nach dem Komma zeigen

+0

Vielen Dank, 17 von 26. Ich wusste nicht über die ToFixed() -Funktion. – pmg

+0

Die Methode toFixed() gibt eine Zeichenfolge (anstelle der Zahl) einer Zahl in der Festkomma-Schreibweise zurück. Daher sollten wir beim Umgang mit der toFixed() Methode vorsichtig sein. – pramodc84

4

die JavaScript-Methoden Number.toFixed() und Number.toPrecision() hier helfen können, aber they return a String. Eine mögliche Lösung ist wie folgt:

var x = parseFloat(parseFloat("1.0019999999").toPrecision(3));