java Double精度缺失

在使用Double计算数值时,经常会遇见精度缺失的问题,例如

 @Test
    public void testDouble() {
    
    
        Double a = Double.valueOf(0.05);
        BigDecimal bd = new BigDecimal(a);
        String s = bd.toPlainString();
        System.out.println(s);
    }

结果打印出

0.05000000000000000277555756156289135105907917022705078125

解决方式:
将Double转成String类型,在传入BigDecimal的构造方法

@Test
    public void testDouble2() {
    
    
        Double a = Double.valueOf(0.05);
        BigDecimal bd = new BigDecimal(a.toString());
        System.out.println(bd.toPlainString());
    }

结果打印出

0.05

猜你喜欢

转载自blog.csdn.net/RenshenLi/article/details/119251730