日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

Python浮點型(float)運算結(jié)果不正確的解決方案

瀏覽:32日期:2022-07-10 13:29:14

一、問題說明

以前對浮點數(shù)運行沒有沒有太在意。昨天同事要求把百分比結(jié)果保存到文件上,然后就以保存1位小數(shù)的形式給他保存了。

但是今天同事運行時問能不能統(tǒng)一以一位小數(shù)的形式保存,當(dāng)時覺得很奇怪昨天就是以一位小數(shù)形式存的怎么還會提這種要求呢。

其給回的截圖確實是部分是一位小數(shù)的,但一部分是很長的。查看代碼都統(tǒng)一如下格式:

# 使用round保留三位小數(shù),然后乘以100,最后格式化為帶百分號的字符串rate=f'{round(x/y,3) * 100}%'

代碼上沒看出什么問題,直接運行確實是有些結(jié)果是一長串的。進(jìn)行調(diào)試發(fā)現(xiàn)當(dāng)x為37y為76時即會出現(xiàn)問題,如下圖所示:

Python浮點型(float)運算結(jié)果不正確的解決方案

進(jìn)行步驟拆分,發(fā)現(xiàn)round方法沒有問題,問題在浮點數(shù)乘以100上(同時如下圖可以看到也不是所有浮點數(shù)乘都有問題)

Python浮點型(float)運算結(jié)果不正確的解決方案

二、原因探究

搞不清原因,直到看到這篇文章:https://www.programiz.com/python-programming/numbers

大意是說二進(jìn)制對很多浮點數(shù)無法準(zhǔn)確表示只能用一個近似值代替,而當(dāng)使用這些以近似值代替的浮點數(shù)進(jìn)行進(jìn)算時本質(zhì)上是這些進(jìn)似值參與了運算,出來的結(jié)果也就是進(jìn)似值運算后的結(jié)果。

也就是說,一是這不是乘100的問題也不是乘法的問題而是整個浮點數(shù)運算都有問題,二是這不是python的問題是計算機(jī)浮點數(shù)存儲的問題像C、Java等其他計算機(jī)語言進(jìn)行運算都會有問題。

Python浮點型(float)運算結(jié)果不正確的解決方案

可能有人會疑惑:為什么二進(jìn)制可以表示2不能表示0.2呢?

這是因為數(shù)值和字符串是不一樣的,如果是字符串那么表示2.2點的左右兩邊的2編碼是一樣的就可以了(如ASCII碼:504650),但數(shù)值不是這樣,數(shù)值的整數(shù)部分和小數(shù)部分需要一個統(tǒng)一的表示形式,那就是加權(quán)位計數(shù)法。

整數(shù)部分都要以2的0次方(20)到2的無窮次方(2∞)表示,這沒有問題,只要長度足夠就能表示出所有奇數(shù)和偶數(shù)。2 = 1 * 21 + 0 * 20 = 10

小數(shù)部分都要以2的-1次方(2-1)到2的負(fù)無窮次方(2-∞)表示,這就有問題,因為比如2-1...2-∞不管怎么組合都不能完全等于0.2。0.2 = 0 * 2-1 + 0 * 2-2 + 1 * 2-3 ...

三、處理辦法

這情況讓我想起上份工作局方領(lǐng)導(dǎo)的一句話,應(yīng)該是“可以理解但不能接受”。

原理上二進(jìn)制無法精確表示一些浮點數(shù)可以理解,但是就這么返回個顯然錯誤的結(jié)果給用戶那是無法接受的。

python提供了Decimal()方法讓浮點運算結(jié)果可以和人平時運算的結(jié)果一樣。(Decimal本質(zhì)應(yīng)該還是通過加長長度提高精度)

Python浮點型(float)運算結(jié)果不正確的解決方案

# Decimal傳字符串才能準(zhǔn)確表示,所以需要先用str()把round()的結(jié)果轉(zhuǎn)為字符串rate=f'{Decimal(str(round(x/y,3))) * 100}%'# 其實上邊的結(jié)果出來是48.700%的形式,即三位小數(shù)的形式并不太符合我們保留一位小數(shù)的想法,真正符合想法得下面這樣# rate=f'{round(Decimal(str(round(x/y,3))) * 100, 1)}%'# 其實我們說了這么多,我們都是建立在決定保留多少位再乘100這個前提下,倘若我們先乘100后決定保留幾位那都不需要用Decimal# rate=f'{round(x/y*100,1)}%'

Python浮點型(float)運算結(jié)果不正確的解決方案

參考:

https://www.programiz.com/python-programming/numbers

https://docs.python.org/3.7/library/decimal.html

以上就是Python浮點型(float)運算結(jié)果不正確的解決方案的詳細(xì)內(nèi)容,更多關(guān)于Python浮點型(float)運算結(jié)果不正確的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久一二三区| 中文字幕在线视频久| 国产精品1区| 亚洲一二av| 在线一区二区三区视频| 欧美一区=区| 日韩在线观看一区二区| 欧美欧美黄在线二区| 国产成人精品亚洲日本在线观看| 亚洲精品在线a| 亚洲免费精品| 久久精品观看| 欧美成人a交片免费看| 久久福利精品| 国产在线成人| 久久精品高清| 久久精品青草| 深夜视频一区二区| 福利一区和二区| 精品国产精品国产偷麻豆| 麻豆精品在线播放| 麻豆精品国产91久久久久久| 欧美日本久久| 亚洲尤物在线| 在线观看免费一区二区| 亚洲婷婷免费| av亚洲在线观看| 精品国产精品久久一区免费式| 亚洲免费专区| 在线观看一区| 日韩中文字幕无砖| 日韩精品a在线观看91| 亚洲精品三级| 91麻豆精品| 欧美日韩视频免费看| 清纯唯美亚洲综合一区| 久久国产麻豆精品| 免费在线成人| 91视频精品| 性欧美xxxx免费岛国不卡电影| 国产在线日韩| 亚洲综合色婷婷在线观看| 四虎国产精品免费久久| 国产欧美视频在线| 成人在线超碰| 久久中文字幕av一区二区不卡| 今天的高清视频免费播放成人| 亚洲欧洲午夜| 日韩欧美精品一区二区综合视频| 国产视频一区二| 久久精品亚洲人成影院 | 国产日韩视频| 国语精品一区| 欧美在线网站| 涩涩涩久久久成人精品| 国产日本精品| 久久av网站| 成人一区而且| 午夜精品亚洲| 欧美亚洲一级| 青青青免费在线视频| 97精品视频在线看| 日韩精品一级中文字幕精品视频免费观看 | 在线精品视频在线观看高清| 午夜一区在线| 亚洲精品极品| 欧美啪啪一区| 中文字幕在线高清| 99视频+国产日韩欧美| 欧美一级二区| 国产毛片一区| 美女视频免费精品| 久久国产免费| 久久久天天操| 亚洲欧美在线综合| 精品午夜视频| 99精品电影| 欧美亚洲三区| 三级小说欧洲区亚洲区| 日韩中文字幕| 欧美不卡视频| 欧美精品aa| 国产亚洲久久| 日本а中文在线天堂| 91久久中文| 国产日韩欧美三区| 欧美综合另类| 欧美精品影院| 99国产精品| 久久精品女人| 亚洲精品一区二区妖精| 蜜桃精品视频| 免费一区二区视频| 久久精品一区二区国产| 中文亚洲免费| 久久中文字幕av| 国产精品对白| 免费在线观看视频一区| 精品资源在线| 日韩av中文字幕一区二区三区| 天堂中文av在线资源库| 久久福利在线| 国产乱码精品一区二区三区四区| 三级一区在线视频先锋| 不卡中文字幕| 韩国精品主播一区二区在线观看 | 欧美好骚综合网| 久久不见久久见国语| 久久国产精品色av免费看| 亚洲另类av| 免费观看在线综合色| 午夜在线观看免费一区| 在线看片不卡| 黄色日韩在线| 亚洲免费中文| 日韩欧美精品| 日韩大片免费观看| 色偷偷色偷偷色偷偷在线视频| 国产一区二区三区四区| 欧美国产另类| 精品国产一区二| 国产一区二区久久久久| 精品在线网站观看| 欧美国产美女| 91av亚洲| 在线视频观看日韩| 国产精品毛片一区二区三区| 欧美特黄一级| 免费成人在线视频观看| 日韩中文字幕一区二区三区| 夜夜嗨一区二区| 麻豆亚洲精品| 四虎成人精品一区二区免费网站| 亚洲精品日本| 国产亚洲一区| 麻豆91在线播放| 国产精品蜜芽在线观看| 成人看片网站| 国产美女精品| 欧美影院精品| 国产成人免费| 欧美色图一区| 亚洲一区av| 国产精品白浆| 欧产日产国产精品视频| 久久九九精品| 在线亚洲欧美| 日本特黄久久久高潮| 欧美91在线|欧美| 四季av一区二区凹凸精品| 久久国产成人午夜av影院宅| 国产精品腿扒开做爽爽爽挤奶网站| 中文字幕亚洲影视| 国产精品男女| 日韩中文影院| 日韩影院精彩在线| 国产精品欧美在线观看| yellow在线观看网址| 五月天激情综合网| 日韩极品在线观看| 国产成人久久精品一区二区三区| 国产66精品| 在线视频亚洲| 国产精品亚洲欧美一级在线| 青青青免费在线视频| 亚洲专区在线| 国产精品久久久一区二区| 蜜桃视频在线网站| 麻豆精品网站| 久久只有精品| 尹人成人综合网| 国产精品久久久久久av公交车 | 亚洲91精品| 精品久久久网| 精品一区毛片| 成人片免费看| 一区二区三区网站| 欧美肉体xxxx裸体137大胆| 国产精品大片| 国产精品玖玖玖在线资源| 青青国产精品| 日韩一区精品| 91精品一区| 日韩av在线中文字幕| 亚洲专区视频| 日韩国产在线一| 在线观看精品| 日韩三级一区| 久久蜜桃资源一区二区老牛| 激情婷婷综合| 日本精品一区二区三区在线观看视频| 99成人在线| 91精品成人| 亚洲精品成人| 91精品国产自产在线丝袜啪| 日韩有吗在线观看| 麻豆精品久久久| 日韩欧美一区二区三区在线视频 | 欧美精品日日操| 国产精品xxx|