簡體   English   中英

Python和Java包可實現浮點精度

[英]Python and java package for floating point accuracy

在用python編寫程序(與Java相同)的過程中,我遇到了以下問題,我知道這是由於舍入錯誤引起的。

a = 0.3
b = 0.6;
print(a+b) #returns 0.8999999999999999 which makes a+b==0.9 false

我想知道在python(和Java)中是否有任何軟件包可以使這種情況的生活變得更輕松,而不是在應用程序中定義錯誤綁定並自己檢查它,只需導入該軟件包,其余的就交給您了。 (例如將來的軟件包中划分所發生的事情: http : //legacy.python.org/dev/peps/pep-0238/

編輯:到目前為止(2016年7月),我知道它是唯一可以使用的Decimal類。 問題是我不喜歡每次定義Decimal類的方式,而不僅僅是為變量賦值。 我只是在尋找一個導入后會處理數字並將其自動轉換為十進制的程序包(就像future程序包中發生的情況一樣,導入后會進行除法運算)。 無論如何,我認為到目前為止,此問題的最佳解決方案是在python中使用Decimal和在Java中使用BigDecimal

是的,看看Decimal庫: https : //docs.python.org/2/library/decimal.html

from decimal import Decimal
a = Decimal('0.3')
b = Decimal('0.6')
a + b == Decimal('0.9')

返回True

print(a + b)

返回0.9

這里列出了一些其他選項: 在Python中對Decimal類型的澄清

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM