-4

私はJavaScriptのeval関数を使用しました。しかし、私は結果が好きではありません。この問題を解決するにはどうすればよいですか?

表現:

eval(1.2+24-25)

結果:

0.1999999999999993

0.2の結果が欲しいです。

4

3 に答える 3

10

あなたが抱えている問題は0.2、「ほとんどの数値」のように、IEEE754で正確な表現がなく、計算で数値を組み合わせるとすぐに問題が発生することです。で同様の問題が発生し0.2+1-1ます。

適切な表現を得るには、数値に変換する前に固定 10 進表現に減らすことができます。たとえば、

var v = +(1.2+24-25).toFixed(10)

これにより、

0.2

一般的な慣行は、丸めや使用なしで数値を使用してすべての計算をtoFixed行い、結果をユーザーに提示するときにのみこの種の変換を使用することです (その場合、+はあまり役に立ちません)。

于 2013-07-08T07:58:44.310 に答える
-1

toFix 関数を使用する

var num =1.2+24-25;
var fixed=num.toFixed(1);

文字列が「0.2」に修正されました

于 2013-07-08T07:58:51.110 に答える