使用百分比和BigDecimal的java测试
我有两个大小数,实际值和预算值。我将实际值除以预算,得出一个百分比
我遇到的问题是,在构建一些单元测试时,我试图确认生成的BigDecimal是.1,但当try等于(new BigDecimal(.1))时,由于双精度问题,这会失败
我想克服这个问题的方法是创建两个大小数——10和100,将这两个除掉,然后用它来测试。这样,我只使用固定点数,我的计算结果应该是准确的
所以我的问题是:有没有更好的方法
你可以在下面搜索框中键入要查询的问题!
我有两个大小数,实际值和预算值。我将实际值除以预算,得出一个百分比
我遇到的问题是,在构建一些单元测试时,我试图确认生成的BigDecimal是.1,但当try等于(new BigDecimal(.1))时,由于双精度问题,这会失败
我想克服这个问题的方法是创建两个大小数——10和100,将这两个除掉,然后用它来测试。这样,我只使用固定点数,我的计算结果应该是准确的
所以我的问题是:有没有更好的方法
# 1 楼答案
可以使用
BigDecimal
(docu)的字符串构造函数:# 2 楼答案
使用BigDecimal时,应使用
compareTo
方法而不是equals
方法进行“数字相等”测试:参见javadoc了解更多信息
正如其他人提到的,应该使用字符串构造函数来避免舍入问题