国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python中eval的問題

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

問題描述

python中eval的問題

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

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)上沒找到答案,請高手指導!

更新:

還有個問題請教下,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:

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

因為浮點數(shù)值在計算機存在誤差。

python有 decimal 和 fraction 2個模塊用來進行高精度浮點計算。

例子

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

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

回答3:

eval(’0.3-0.1==0.2’) # 輸出為False, 是因為0.3-0.1=0.19999999999999998eval(’%d - %d == %d’%(0.3, 0.1, 0.2)) # 輸出為True, 是因為你%d傳入是整數(shù),相當于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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 最新国产午夜精品视频成人 | 人成18亚洲资源在线 | 长腿美女被啪的欲仙欲死视频 | 99精品视频在线观看免费播放 | 国产亚洲小视频 | 成人欧美精品一区二区不卡 | 在线亚洲v日韩v | 欧美精品亚洲一区二区在线播放 | 丝袜足液精子免费视频 | 成人做爰免费网站 | 欧美在线观看www | jyzzjyzzjyzz日本在线观看 | 久久精品亚洲精品国产欧美 | 亚洲成人777| 国产在线不卡免费播放 | 欧美一级视| 加勒比毛片 | 中文字幕在线一区二区三区 | 国产成人免费在线 | 国产aⅴ片| 小屁孩cao大人免费网站 | 欧美日本一区二区 | 亚洲国产成人最新精品资源 | 国产精品毛片一区 | 国产成人深夜福利短视频99 | 成人爱做日本视频免费 | va欧美| 日韩在线观看视频网站 | 鲁丝片一区二区三区免费 | 爱爱客影院在线影院gf发现 | 国产一区二区在线视频播放 | 综合国产| 日韩精品另类天天更新影院 | www.久草视频 | 成人免费视频播放 | 亚洲在线影院 | 国产欧美日韩高清专区手机版 | 国产综合亚洲专区在线 | www.日本高清 | 美女美女大片黄a大片 | 日本高清色本免费现在观看 |