Joo*_*gen 5
浮点数double
总是只是一个(不精确的)近似值,是 2 的幂的总和 - 没有任何精度的概念 = 小数位数。55.88 和 55.879999998 可能是完全相同的值(相同的字节)。
BigDecimal
解决了这个问题。但是你不想要一个带有double
as 参数的构造函数,因为那样精度也会丢失。利用:
BigDecimal bnv = new BigDecimal("55.88");
BigDecimal bsv = new BigDecimal("2.33");
以上两者的精度均为 2,乘法将得到 4 的精度。
对于 BigDecimal,有时必须为舍入等提供结果精度。
所以 BigDecimal 是优越的,它不是因为它可怕的 cobolish 表达式。
更多推荐
精度,Big,Decimal,double
发布评论