java下double相乘精度丢失问题

Posted woqiaoxun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java下double相乘精度丢失问题相关的知识,希望对你有一定的参考价值。

比如

System.out.println(0.14*100);

输出: 14.000000000000002

 

解决方法:

BigDecimal b = new BigDecimal(String.valueOf(0.14));
        BigDecimal c = new BigDecimal(String.valueOf(100));
        System.out.println(b.multiply(c));
        System.out.println(b.multiply(c).intValue());
        System.out.println(b.multiply(c).doubleValue());

输出: 

14.00
14
14.0

以上是关于java下double相乘精度丢失问题的主要内容,如果未能解决你的问题,请参考以下文章

Java中 两个double型数字相乘的问题,想不明白是怎么回事

Java double和 float丢失精度问题

java float double精度为啥会丢失

java丢失精度问题

java里面double 做乘法和加法会丢失精度嘛?

BigDecimal精度丢失问题