91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在python中執行精確的小數計算

發布時間:2021-05-22 16:02:08 來源:億速云 閱讀:289 作者:Leah 欄目:開發技術

怎么在python中執行精確的小數計算?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

在進行浮點數計算時它們無法精確表達出所有的十進制小數位。

a = 4.1
b = 5.329
print(a+b)
 
9.428999999999998

這些誤差實際上是底層CPU的浮點運算單元和IEEE754浮點數算數標準的一種“特性”。python的浮點數類型保存的數據采用的是原始表示形式,因此使用float實例時就不能避免這樣的誤差。

我們可以使用decimal模塊避免這種操作(如果不介意犧牲下性能):

from decimal import Decimal
a = Decimal('4.1')
b = Decimal('5.329')
print(a+b)
 
9.429

注意Decimal的參數必須是字符串,不能是浮點型,否則誤差依舊存在。

decimal模塊的主要功能是允許控制計算過程中的各個方面,包括數字的尾數和四舍五入。

from decimal import Decimal
from decimal import localcontext
a = Decimal(4.1)
b = Decimal(5.329)
print(a/b)
print('================')
with localcontext() as ctx:
  ctx.prec = 3
  print(a/b)
 
0.7693751172827922400071261708
================
0.769

getcontext也可以實現和localcontext一樣的功能

from decimal import Decimal, getcontext
a = Decimal(4.1)
b = Decimal(5.329)
getcontext().prec = 3
print(a/b)
 
0.769

誤差我們不能完全消除,我們只能盡力優化算法,使得誤差盡可能小。在大數和小數相加時要格外注意。

nums = [3.21e+18, 1, -3.21e+18]
print(sum(nums))
print('=========================')
import math
res = math.fsum(nums)
print(res)
 
0.0
=========================
1.0

python的數據類型有哪些?

python的數據類型:1. 數字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型。5. 元組,元組用”()”標識,內部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數據組合。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大洼县| 陇南市| 巴青县| 永新县| 会昌县| 苍南县| 朔州市| 沧州市| 尼玛县| 恩平市| 怀柔区| 汽车| 阳朔县| 二连浩特市| 屏山县| 门头沟区| 山东省| 治县。| 津市市| 砚山县| 定结县| 河津市| 石景山区| 阿尔山市| 博乐市| 绥江县| 习水县| 遵义县| 南召县| 乌审旗| 长顺县| 兰溪市| 景泰县| 宽甸| 寿宁县| 承德县| 台湾省| 东方市| 高要市| 阜康市| 平陆县|