相关疑难解决方法(0)

new BigDecimal(double)vs new BigDecimal(String)

何时BigDecimal使用输入double和BigDecimal输入String不同的结果似乎出现.

BigDecimal a = new BigDecimal(0.333333333);
BigDecimal b = new BigDecimal(0.666666666);

BigDecimal c = new BigDecimal("0.333333333");
BigDecimal d = new BigDecimal("0.666666666");

BigDecimal x = a.multiply(b);
BigDecimal y = c.multiply(d);

System.out.println(x);
System.out.println(y);
Run Code Online (Sandbox Code Playgroud)

x输出为

0.222222221777777790569747304508155316795087227497352441864147715340493949298661391367204487323760986328125
Run Code Online (Sandbox Code Playgroud)

而你是

0.222222221777777778
Run Code Online (Sandbox Code Playgroud)

我错误地说这是因为双重不精确?但既然这是一个BigDecimal,不应该是一样的吗?

java bigdecimal double-precision

5
推荐指数
3
解决办法
3872
查看次数

标签 统计

bigdecimal ×1

double-precision ×1

java ×1