国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2019-11-25 15:47:55
字體:
來源:轉載
供稿:網友

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

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

>>> s = 0.>>> for i in range(10): s += .1>>> s0.9999999999999999# 錯誤被累加

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

>>> from math import sqrt>>> a = sqrt(2)>>> a*a == aFalse

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

“==” on floats

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

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

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數學運算技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湘潭县| 射阳县| 肇源县| 桂阳县| 丰台区| 利川市| 灵山县| 高陵县| 和田市| 汕尾市| 荆门市| 望江县| 蒙城县| 通许县| 嘉定区| 阿图什市| 天峻县| 大方县| 蓝山县| 衡阳市| 晋城| 拉萨市| 青川县| 华阴市| 金寨县| 京山县| 比如县| 城市| 怀宁县| 句容市| 绥宁县| 永城市| 洪雅县| 水富县| 大名县| 玛纳斯县| 仁怀市| 洪湖市| 扶余县| 轮台县| 乐山市|