1. ホーム
  2. javascript

[解決済み] Javascriptでfloatの精度を扱う [重複] [重複

2022-03-11 08:15:25

質問

数値が大量にある y をjavascriptで実行します。 の倍数になるように切り捨ててグループ化したい。 x で、その結果を文字列に変換します。

浮動小数点数の精度が煩わしいのですが、どうすればいいですか?

例えば

0.2 + 0.4 = 0.6000000000000001

私が試したのは2つです。

>>> y = 1.23456789 
>>> x = 0.2 
>>> parseInt(Math.round(Math.floor(y/x))) * x; 
1.2000000000000002

とします。

>>> y = 1.23456789 
>>> x = 0.2 
>>> y - (y % x)
1.2000000000000002

解決方法は?

この記事から JavaScriptで浮動小数点数の精度を扱うには?

いくつかのオプションがあります。

  • のように、小数のための特別なデータ型を使用します。 decimal.js
  • このように、結果を何らかの固定された有効数字にフォーマットしてください。 (Math.floor(y/x) * x).toFixed(2)
  • すべての数値を整数に変換する