2017-03-27 10 views
-1

これは非常に奇妙です、私はしばらくノードを使っていますが、私はそのようなことに気付かなかったのです。 0.7+0.2+0.10.6+0.3+0.1のようなものを合計しようとすると、結果は0.9999999999999999になります。なぜ結果は1ではないのですか?Nodejs miscount simple sum?

3つの変数の合計が正確に1であることを検証する必要があるため、この数値を丸めることはできません。ノードがなぜこのように振る舞っているのか理解できますか?ここに私のノードのバージョンや端末上でいくつかのより多くの例/エラーがある:それを指摘して

enter image description here

+0

何度も何度も尋ねられましたhttp://stackoverflow.com/questions/7369803/unexpected-output-when-adding-two-float-numbers –

答えて

0

Aurora0001 @感謝。私はそれを検索しましたが、答えを見つけることができませんでした。今、Nodeがこれをやっている理由を完全に理解していますが、私はこのアプローチに同意するかどうか分かりません。

とにかく、和と1の差が0.0000000001以下であるかどうかを確認してください。

お時間をいただきありがとうございます。最高のみなさま

+0

['Number.EPSILON']を使用してくださいhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON)。 'aequal(a、b)=> Math.abs(a - b) idbehold