亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將浮點數限制為兩個小數點

將浮點數限制為兩個小數點

將浮點數限制為兩個小數點我想要a四舍五入13.95.>>> a13.949999999999999>>> round(a, 2)13.949999999999999這個round函數的工作方式與我預期的不一樣。
查看完整描述

3 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

您正遇到浮點數的舊問題,所有數字都無法表示。命令行只是顯示內存中完整的浮點表單。

在浮點數中,四舍五入的版本是相同的數字。由于計算機是二進制的,它們將浮點數存儲為整數,然后除以2的冪,所以13.95將以類似于125650429603636838/(2*53)的方式表示。

雙精度數字有53位(16位)的精度,規則浮點數有24位(8位)的精度。這個Python中的浮點使用雙精度。來存儲這些值。

例如,

  >>> 125650429603636838/(2**53)
  13.949999999999999

  >>> 234042163/(2**24)
  13.949999988079071

  >>> a=13.946
  >>> print(a)
  13.946
  >>> print("%.2f" % a)
  13.95
  >>> round(a,2)
  13.949999999999999
  >>> print("%.2f" % round(a,2))
  13.95
  >>> print("{0:.2f}".format(a))
  13.95
  >>> print("{0:.2f}".format(round(a,2)))
  13.95
  >>> print("{0:.15f}".format(round(a,2)))
  13.949999999999999

如果你在小數點后只有兩位貨幣,那么你有幾個更好的選擇:1)使用整數和存儲值的美分,而不是美元,然后除以100轉換成美元。2)或使用不動點數,如十進制.


查看完整回答
反對 回復 2019-05-30
  • 3 回答
  • 0 關注
  • 790 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號