Pythonのevalの問題
仅有的幸福
仅有的幸福 2017-06-22 11:52:25
0
3
1039

図に示すように、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 に変更されるのはなぜですか?

仅有的幸福
仅有的幸福

全員に返信(3)
phpcn_u1582

一般にコンピュータで直接使用することはできません == 2 つの浮動小数点数が等しいかどうかを比較します。

コンピュータでは浮動小数点値に誤差があるため。

Python には、高精度浮動小数点計算のための decimalfraction 2 つのモジュールがあります。


リーリー
いいねを押す +0
仅有的幸福

これは eval とは関係ありません。主に精度の問題です。0.3-0.1 == 0.2 を試行すると、Baidu JavaScript 0.2-0.1 の問題が直接返されます。次に、「コンピュータ構成の原理」を見てください。 》初期のデータ表現。

https://stackoverflow.com/que... これは多くの票を集めた回答です。

いいねを押す +0
为情所困

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート