用于浮点精度的Python和java包

2024-04-20 05:39:56 发布

您现在位置:Python中文网/ 问答频道 /正文

在用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月),据我所知,这是唯一的十进制类,你可以使用它。问题是,我不喜欢这样的方式,我们应该定义每一个时间十进制类,而不是仅仅分配变量的值。我只是想找一个在导入之后处理数字并自动转换成十进制的包(就像在future包中发生的那样,导入之后处理除法操作)。无论如何,我认为到目前为止解决这个问题的最好方法是在python中使用Decimal,在Java中使用BigDecimal


Tags: false应用程序httpwhich定义过程错误legacy