首页 > 其他 > 详细

double相乘少一分的问题,BigDecimal参数传小数也会出问题

时间:2020-05-18 20:35:08      阅读:83      评论:0      收藏:0      [点我收藏+]
public static void main(String[] args) {
System.out.println(String.valueOf((int) (19.9 * 100))); //1989
   double aa = 19.9;
double bb = 100;
System.out.println(aa*bb); //1989.9999999999998

BigDecimal v1 = new BigDecimal("19.9");
BigDecimal v2 = new BigDecimal("100");
Double v = v1.multiply(v2).doubleValue();
  System.out.println(v.intValue()); //1990
System.out.println(v); //1990.0
    BigDecimal b1 = new BigDecimal(19.9);
BigDecimal b2 = new BigDecimal(100);
System.out.println(b1); //19.89999999999999857891452847979962825775146484375
Double b = b1.multiply(b2).doubleValue();
System.out.println(b.intValue()); //1989
System.out.println(b); //1989.9999999999998
}



结论就是小数相乘,要使用BigDecimal且构造参数传入字符串

double相乘少一分的问题,BigDecimal参数传小数也会出问题

原文:https://www.cnblogs.com/wgb123/p/12912321.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!