Python中計算浮點數(shù)的方法

這篇文章主要介紹Python中計算浮點數(shù)的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

站在用戶的角度思考問題,與客戶深入溝通,找到瓜州網(wǎng)站設計與瓜州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務覆蓋瓜州地區(qū)。

1、浮點數(shù)的一個普遍的問題是它們不能精確的表示十進制數(shù)。

>>> a = 4.2
>>> b = 2.1
>>> a + b
6.300000000000001
>>> (a + b) == 6.3
False

這是由于底層 CPU 和IEEE 754 標準通過自己的浮點單位去執(zhí)行算術時的特征??此朴懈F的小數(shù), 在計算機的二進制表示里卻是無窮的。

一般情況下,這一點點的小誤差是允許存在的。如果不能容忍這種誤差(比如金融領域),那么就要考慮用一些途徑來解決這個問題了。

2、Decimal

使用這個模塊不會出現(xiàn)任何小誤差。

>>> from decimal import Decimal
>>> a = Decimal('4.2')
>>> b = Decimal('2.1')
>>> a + b
Decimal('6.3')
>>> print(a + b)
6.3
>>> (a + b) == Decimal('6.3')
True

盡管代碼看起來比較奇怪,使用字符串來表示數(shù)字,但是 Decimal 支持所有常用的數(shù)學運算。 decimal 模塊允許你控制計算的每一方面,包括數(shù)字位數(shù)和四舍五入。在這樣做之前,需要創(chuàng)建一個臨時上下文環(huán)境來改變這種設定:

>>> from decimal import Decimal, localcontext
>>> a = Decimal('1.3')
>>> b = Decimal('1.7')
>>> print(a / b)
0.7647058823529411764705882353
>>> with localcontext() as ctx:
...  ctx.prec = 3
...  print(a / b)
...
0.765
>>> with localcontext() as ctx:
...  ctx.prec = 50
...  print(a / b)
...
0.76470588235294117647058823529411764705882352941176
>>>

以上是Python中計算浮點數(shù)的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

名稱欄目:Python中計算浮點數(shù)的方法
分享路徑:http://muchs.cn/article8/pdpeop.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航網(wǎng)站內(nèi)鏈、做網(wǎng)站、電子商務軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設