2

私は面白いばかげた問題を抱えています:なぜそれをjavascript示しているの10.2 - 17 = -6.800000000000001ですか?

ここで似たようなものが見つかりました:javascriptでマイナス演算を計算すると、誤った値が返されますが、数値を丸めることができません。

使用する小数点以下の桁数を指定せずに、どういうわけかこれを修正できますか?(実際には、小数点以下6〜7桁の結果が得られます)

4

1 に答える 1

5

浮動小数点演算は必ずしも正確ではありません。

特に、浮動小数点値としての10.2の正確な表現はないため、代わりに最も近い表現可能な値が格納されます。この値は10.2とはわずかに異なります。

これを処理する最も簡単な方法は、数値を表示するときに小数点以下第2位に四捨五入することです。

一部の言語には、decimal10.2を正確に表すことができるタイプがあります。でも:

  • Javascriptにはこのような組み込み型がないため、サードパーティのライブラリを使用する必要があります。
  • 10進浮動小数点数は、すべての問題を解決するわけではありません。たとえば、の結果を0.1 / 0.3小数として正確に表すことはできません。結果を表示するときに、結果を小数点以下第2位に四捨五入する必要がある場合があります。
于 2012-06-22T05:43:58.573 に答える