午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

python中eval的問題

瀏覽:186日期:2022-06-27 18:40:29

問題描述

python中eval的問題

如圖,Python2.7在使用eval計算浮點(diǎn)數(shù)表達(dá)式的時候,

eval(’0.3-0.1==0.2’) # 輸出為Falseeval(’%d - %d == %d’%(0.3, 0.1, 0.2)) # 輸出為Trueeval(’%s - %s == %s’%(0.3, 0.1, 0.2)) # 輸出為Falseeval(’%s - %s == %s’%(’0.3’, ’0.1’, ’0.2’)) # 輸出為False

這就讓人特別疑惑了,在網(wǎng)上沒找到答案,請高手指導(dǎo)!

更新:

還有個問題請教下,a=0.3-0.1,print(a)輸出0.19999999999999998;b=0.2,但是print(’%s==%s’%(a,b))卻輸出的是 0.2==0.2,這里為什么在格式化字符串的時候,a由0.19999999999999998變成了0.2呢?

問題解答

回答1:

一般在計算機(jī)里不能直接用 == 比較2個浮點(diǎn)數(shù)是否相等。

因?yàn)楦↑c(diǎn)數(shù)值在計算機(jī)存在誤差。

python有 decimal 和 fraction 2個模塊用來進(jìn)行高精度浮點(diǎn)計算。

例子

>>> from fractions import Fraction>>> Fraction(’0.3’)-Fraction(’0.1’) == Fraction(’0.2’)True>>> from decimal import Decimal>>> Decimal(’0.3’)-Decimal(’0.1’) == Decimal(’0.2’)True>>> 回答2:

這和eval沒什么關(guān)系,主要是精度問題,這個在所有的編程語言都會遇到,你試試 0.3-0.1 == 0.2 都會直接返回False. 百度 JavaScript 0.2-0.1問題,然后看一下《計算機(jī)組成原理》最開始的 數(shù)據(jù)表示。

https://stackoverflow.com/que... 這個是 一個高票回答。

回答3:

eval(’0.3-0.1==0.2’) # 輸出為False, 是因?yàn)?.3-0.1=0.19999999999999998eval(’%d - %d == %d’%(0.3, 0.1, 0.2)) # 輸出為True, 是因?yàn)槟?d傳入是整數(shù),相當(dāng)于0-0=0eval(’%s - %s == %s’%(0.3, 0.1, 0.2)) # 輸出為False, 參考1eval(’%s - %s == %s’%(’0.3’, ’0.1’, ’0.2’)) # 輸出為False, 參考1

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 中文字幕五月 | 黄视频网站在线观看 | 日韩美女视频19 | 五月天综合激情 | 国产精品情侣呻吟对白视频 | √资源天堂中文在线 | 亚洲专区免费 | 91免费视频黄 | 91在线视频免费 | 国产精品第一页在线观看 | 中国女人一级一次看片 | 日本黄xxxxxxxxx100 | 精品美女久久 | 黄视频免费看在线 | 国产精品毛片va一区二区三区 | 久久久久久国产精品 | 成人av网站在线观看 | 国产免费不卡 | 国产97在线观看 | 欧美黄色三级视频 | av最新在线| 日韩最新在线 | 精品天堂| 欧美肥妇bbw | 亚洲福利视频网站 | 性爱一级视频 | 欧美日韩亚洲成人 | 国产精品久热 | 一级黄色片免费看 | 久久综合色88 | 先锋久久 | 巨乳在线观看 | 日韩免费在线观看视频 | 经典av在线 | 午夜影院a | 亚洲理论片 | 97精品一区二区 | 欧美日韩精品在线 | 香蕉短视频 | av在线播放一区二区 | 欧美爱爱视频 |