何时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类简介的练习决赛的问题:
为什么在类的不同方法中对循环控制变量使用相同的字段是个坏主意?
答:因为如果从循环体调用方法,它可能会重置用于控制该循环的变量的值
B.因为在不同方法中对变量使用相同的名称不是一种好的风格
C.因为它浪费了记忆
D.因为局部变量可以保存在CPU寄存器中,并且循环运行得更快
答案是A,但我首先并不是真正理解这个问题.循环中的变量如何影响第二种方法?那么在常规方法调用中,这不会适用于循环外部吗?如果有人可以在代码中提供一个很棒的例子.