検索

ホームページ  >  に質問  >  本文

Pythonのevalの問題

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

仅有的幸福仅有的幸福2790日前1067

全員に返信(3)返信します

  • phpcn_u1582

    phpcn_u15822017-06-22 11:54:25

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

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

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


    リーリー

    返事
    0
  • 仅有的幸福

    仅有的幸福2017-06-22 11:54:25

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

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

    返事
    0
  • 为情所困

    为情所困2017-06-22 11:54:25

    リーリー

    返事
    0
  • キャンセル返事