一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python中的浮點數原理與運算分析

Python中的浮點數原理與運算分析

2020-12-11 00:24Inside_Zhang Python

這篇文章主要介紹了Python中的浮點數原理與運算分析,結合實例形式分析了Python浮點數操作的常見錯誤,并簡單解釋了浮點數運算的原理與比較運算實現方法,需要的朋友可以參考下

本文實例講述了Python中的浮點數原理與運算。分享給大家供大家參考,具體如下:

先看一個違反直覺的例子:

?
1
2
3
4
5
>>> s = 0.
>>> for i in range(10): s += .1
>>> s
0.9999999999999999
# 錯誤被累加

再看一個更為普遍,直接影響判斷邏輯的例子:

?
1
2
3
4
>>> from math import sqrt
>>> a = sqrt(2)
>>> a*a == a
False

之所以會出現以上的結果,在于 Python (更準確地說是計算機硬件體系結構)對浮點數的表示,我們來看計算機(基于二進制)對十進制小數 0.1 的表示,十進制小數向二進制小數轉換的方法請見 Python十進制小數與二進制小數相互轉換。將十進制小數 0.1 轉換為二進制時的結果為 0.0001100110011001....,無限循環,計算機無法展示無限的結果,只能對結果進行截斷,這是浮點數精度問題的根源。

“==” on floats

基于以上的考慮,當我們進行浮點數的相等比較時,要特別小心,直接使用 == 是有問題的,一種通用的做法即是,不是檢測浮點數是否相等,而是檢測二者是否足夠接近,

?
1
2
3
>>> a = sqrt(2)
>>> abs(a*a-2) < epsilon
# 判斷是否小于某一小量

希望本文所述對大家Python程序設計有所幫助。

原文鏈接:http://blog.csdn.net/lanchunhui/article/details/50662213

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本乱人伦中文在线播放 | 亚洲国产综合久久久无码色伦 | 99r在线观看 | 女子监狱第二季未删减在线看 | 免费91麻豆精品国产自产在线观看 | 亚洲天天做夜夜做天天欢 | 18韩国美女vip视频7 | 脱了白丝校花的内裤猛烈进入 | 婷婷福利| 福利社在线免费观看 | 精品一区二区免费视频蜜桃网 | 动漫人物差差插曲漫画 | 国产午夜永久福利视频在线观看 | 99热在线这里只有精品 | 九九九九在线视频播放 | 美女精品永久福利在线 | 天天干女人 | 67194在线免费观看 | 91影视永久福利免费观看 | 欧美一级裸片又黄又裸 | 青青操在线观看 | 3d动漫美女物被遭强视频 | 国产精品福利在线观看入口 | 草莓丝瓜芭乐樱桃榴莲色多黄 | wwwav在线| 午夜精品久久久久久久99 | 久久久久青草大香线综合精品 | 精品无人区乱码1区2区3区在线 | 亚洲人成网站在线观看青青 | 国产欧美视频一区二区三区 | 丝瓜草莓香蕉绿巨人幸福宝 | 日本亚洲娇小与黑人tube | 四虎影视在线影院在线观看 | 亚洲乱码一二三四区国产 | 国产裸舞在线一区二区 | 精品国产人妻国语 | 韩国男女做性全过程视频 | 日产精品一二三四区国产 | 色综合视频一区二区三区 | 91免费永久在线地址 | 成人免费一区二区三区在线观看 |