zoukankan      html  css  js  c++  java
  • java——double数据精度问题

    代码:使用BigDecimal来代替double

    public class BigDecimalUtil {
         public static BigDecimal add(double v1,double v2){
             BigDecimal b1 = new BigDecimal(Double.toString(v1));
             BigDecimal b2 = new BigDecimal(Double.toString(v2));
             return b1.add(b2);
         }
         public static BigDecimal sub(double v1,double v2){
             BigDecimal b1 = new BigDecimal(Double.toString(v1));
             BigDecimal b2 = new BigDecimal(Double.toString(v2));
             return b1.subtract(b2);
         }
         public static BigDecimal mul(double v1,double v2){
             BigDecimal b1 = new BigDecimal(Double.toString(v1));
             BigDecimal b2 = new BigDecimal(Double.toString(v2));
             return b1.multiply(b2);
         }
         public static BigDecimal div(double v1,double v2){
             BigDecimal b1 = new BigDecimal(Double.toString(v1));
             BigDecimal b2 = new BigDecimal(Double.toString(v2));
             return b1.divide(b2,2,BigDecimal.ROUND_HALF_UP);//四舍五入,保留2位小数
        }
     }

    double测试示例:

    public class BigDecimalTest{
         @test
         public void test1(){
             System.out.println(0.05+0.01);
             System.out.println(1.0-0.42);
             System.out.println(4.015*100);
             System.out.println(123.3/100);
         }
     }

    //运行结果
    //0.060000000000005
    //0.57000000000000001
    //401.499999999999994
    //1.2329999999999999
  • 相关阅读:
    C++ STL list
    1159 Palindrome
    3070 Fibonacci
    1458 Common Subsequence
    git工具之重写历史
    git工具之修订版本(revision)选择
    git工具之使用git调试
    程序员也要听歌啊 写写歌词~(毛不易)《借》《消愁》《像我这样的人》
    git基本命令讲解
    git工作原理
  • 原文地址:https://www.cnblogs.com/Tpf386/p/11175384.html
Copyright © 2011-2022 走看看