図に示すように、Python2.7 が eval を使用して浮動小数点式を計算すると、
リーリー
これは非常にわかりにくいです。オンラインで答えが見つかりません。教えてください。
更新:
別の質問があります、
a=0.3-0.1, print(a) 出力 0.19999999999999998; b=0.2,
But print('%s==%s'%(a,b) ) しかし出力は 0.2==0.2,
文字列をフォーマットするときに 0.19999999999999998 から 0.2 に変更されるのはなぜですか?
一般にコンピュータで直接使用することはできません
==
2 つの浮動小数点数が等しいかどうかを比較します。コンピュータでは浮動小数点値に誤差があるため。
Python には、高精度浮動小数点計算のための
decimal
和fraction
2 つのモジュールがあります。例
リーリーこれは eval とは関係ありません。主に精度の問題です。0.3-0.1 == 0.2 を試行すると、Baidu JavaScript 0.2-0.1 の問題が直接返されます。次に、「コンピュータ構成の原理」を見てください。 》初期のデータ表現。
https://stackoverflow.com/que... これは多くの票を集めた回答です。
リーリー