【解決方法】すべてのプログラミング言語がこの単純な計算を実行できないのはなぜですか?


<pre lang="PHP">echo 128.23 - (118.23 + 10);

Python
print(128.23 - (118.23 + 10))

JavaScript
console.log(128.23 - (118.23 + 10))

PHP、JavaScript、Pythonで試しました

これらのすべての計算は 0 または 0.00 を返しませんが、-2.842170943040401e-14 を返します

誰かが私になぜこれが起こるのか説明できますか?

私が試したこと:

実際、これは私には意味がないので、どこから理解し始めたのかさえわかりません

解決策 1

解決策 2

リチャードが言ったことに追加するには-当然-言った…

Double、Float、および Decimal のさまざまな数値型を使用して、C# で試してみてください。

C#
Console.WriteLine(128.23 - (118.23 + 10));
Console.WriteLine(128.23f - (118.23f + 10f));
Console.WriteLine(128.23m - (118.23m + 10m));

結果はおそらく期待したものではありません。

-2.8421709430404E-14
-1.525879E-05
0.00

そのため、.NET には Decimal 数値型があります。

コメント

タイトルとURLをコピーしました