恶心的面试题6 《System.out.println(new BigDecimal(5).multiply(new BigDecimal(“0.3”)));》
System.out.println(new BigDecimal(5).multiply(new BigDecimal(“0.3”)));
输出什么
System.out.println(new BigDecimal(5).multiply(new BigDecimal(0.3)));
输出什么
答案
这个跟精度丢失有关 大家可以去翻看源码
总结:
构建BigDecimal时尽量使用下面两种方法构建,以免发生一些不必要,或难以想象的错误。
public BigDecimal(String val) ;
public static BigDecimal valueOf(double val);