0

以下のコードを参照してください。

    currentAxis.Range.Start = 1956.9

    tempInterval = currentAxis.Range.Start

    currentAxis.Range.Interval = 0.4

    tempInterval += currentAxis.Range.Interval;

1957.3000000000001の代わりに値を返します 1957.3。ポイントの10進数値を削除するためにメソッドを使用したくありません。これはtoFixed()、間隔値が0.0004 ポイントの後に4桁を返す場合があるためです。間隔によって変動します。

メソッド1956.9 +0.4= 1957.3 を使用せずに必要です。toFixed()どうすればこれを解決できますか?

4

2 に答える 2

0

10 を掛けて、10 進数に固定し、10 で割ってみてください。

使用:

Math.round((1956.9 +0.4)*10)/10           // Output 1957.3

または単に:

(((1956.9 + 0.4)*10)<<0)/10               // Output 1957.3
于 2013-03-25T09:45:34.073 に答える
0

すでに述べたように、この不確実性は浮動小数点数に固有のものであり、javascriptは整数ではなく浮動小数点数のみをサポートします。しかし、丸め誤差が 1957.3000000000001 の領域にあり、関心のある最も正確な計算が 1957.0004 の領域にある場合、丸め誤差が結果に大きな影響を与えることを心配する必要がなくなる前に、何百万もの計算を行うことができます。

于 2013-03-25T10:43:49.610 に答える