zoukankan      html  css  js  c++  java
  • 两个double相加出现精度问题的解决方法

     浮点数值不适合用于禁止出现误差的金融计算中。

     例如,命令System.out.println(2.0-1.1);将打印出0.8999999999999999,而不是人们想象的0.9.原因是浮点数是采用二进制数表示的,而在

    二进制数中无法精确的表示1/10 。这就好像十进制数无法表示1/3一样。如果需要在数值计算中不含有任何误差,这就应该使用BigDecimal类:

     BigDecimal bd=new BigDecimal(String.valueOf(3.3));
       BigDecimal bd2=new BigDecimal(String.valueOf(2.4));
       double res=bd.subtract(bd2).doubleValue();//bd-bd2
       System.out.println(res);

  • 相关阅读:
    本周学习进度条2
    web—图表表示数据库中的数据
    Intern Day36
    计算机网络
    面试
    C++
    计算机网络
    腾讯PC客户端开发暑期实习一面
    TCP和UDP
    Intern Day34
  • 原文地址:https://www.cnblogs.com/qingtianyu/p/3549572.html
Copyright © 2011-2022 走看看