0

なぜこれでは期待どおりの結果が得られないのですか?

console.log(0.2+0.1); // gives 0.30000000000000004 
console.log(0.2+0.3); // gives 0.5
console.log(0.2+0.5); // gives 0.7
console.log(0.2+0.4); // gives 0.6000000000000001 

なぜfirstlastは期待どおりの結果を出さないのですか?

4

2 に答える 2

1

forをJavaScript使用したためです。IEEE StandardBinary Floating-Point Arithmetic

すべてfloating point mathがこのようであり、に基づいていIEEE 754 standardます。JavaScriptは64-bit floating point representation、Javaと同じを使用しますdouble

浮動小数点演算が壊れている可能性がありますか?

于 2013-03-25T12:17:11.720 に答える
0

試してください.toFixed()。このメソッドは、小数点以下の特定の桁数で数値をフォーマットします。

console.log((0.2 + 0.1).toFixed(1)); // gives 0.3
console.log((0.2 + 0.3).toFixed(1)); // gives 0.5
console.log((0.2 + 0.5).toFixed(1)); // gives 0.7
console.log((0.2 + 0.4).toFixed(1)); // gives 0.6
于 2013-03-25T12:20:35.280 に答える