我知道以下行为是一个老问题,但我仍然不明白.
System.out.println(0.1 + 0.1 + 0.1);
Run Code Online (Sandbox Code Playgroud)
或者即使我使用 BigDecimal
System.out.println(new BigDecimal(0.1).doubleValue()
+ new BigDecimal(0.1).doubleValue()
+ new BigDecimal(0.1).doubleValue());
Run Code Online (Sandbox Code Playgroud)
为什么这个结果是:0.30000000000000004而不是:0.3?
我怎么解决这个问题?