• BigDecimal、double


    BigDecimal篇:

    1.String转BigDecimal

    String s1="123.45";
    
    BigDecimal bg=new BigDecimal(s1);

    2. 解决double相加的精度问题,要用BigDecimal

    public static double add(double v1, double v2)
        {
            BigDecimal b1 = new BigDecimal(Double.toString(v1));
            BigDecimal b2 = new BigDecimal(Double.toString(v2));
            return b1.add(b2).doubleValue();
        }
    

      

    Double a=BigDecimalUtils.format(b).doubleValue();
    

       

    3.加减乘除
    bignum3 =  bignum1.add(bignum2);      
    bignum3 = bignum1.subtract(bignum2);
    bignum3 = bignum1.multiply(bignum2); 
    bignum3 = bignum1.divide(bignum2); 
    

      

    4.比大小

    //前提为a、b均不能为null
    if(a.compareTo(b) == -1){
        System.out.println("a小于b");
    }
     
    if(a.compareTo(b) == 0){
        System.out.println("a等于b");
    }
     
    if(a.compareTo(b) == 1){
        System.out.println("a大于b");
    }
     
    if(a.compareTo(b) > -1){
        System.out.println("a大于等于b");
    }
     
    if(a.compareTo(b) < 1){
        System.out.println("a小于等于b");
    }
    

     

    5.等于0

    if(num.equals(BigDecimal.ZERO)){ }
    

     

    6.转换成类型

    toString()                将BigDecimal对象的数值转换成字符串。 
    doubleValue()          将BigDecimal对象中的值以双精度数返回。 
    floatValue()             将BigDecimal对象中的值以单精度数返回。 
    longValue()             将BigDecimal对象中的值以长整数返回。 
    intValue()               将BigDecimal对象中的值以整数返回。

    6.保留两位小数处理

    //第一种方法:保留两位小数
    double db = bigDecimalTwo.setScale(2, RoundingMode.HALF_UP).doubleValue();
    System.out.println(db);
     
    // 第二种方法:保留两位小数
    DecimalFormat df = new DecimalFormat("#.00");
    df.format(bigDecimalTwo);
    

      

     

    ----------------------------------------分割线---------------------------------------------------------------------------

    double篇:

     double的比大小,判是否等于0都会有精度问题

    要用BigDecimal来处理

    
    
  • 相关阅读:
    Redis批量删除key的小技巧,你知道吗?
    Spring条件注解@Conditional
    Spring Boot 2.X 如何快速集成单元测试?
    idea git提交时候提示 --author 'java_suisui' is not 'Name ' and matches no existing author
    Spring Boot 2.X 如何添加拦截器?
    SpringMVC+Mybatis 如何配置多个数据源并切换?
    Spring Boot 2.X 如何优雅的解决跨域问题?
    基于SSL实现MySQL的加密主从复制
    mysql -- mysql基于ssl的主从复制
    MySQL DB 主从复制之SSL
  • 原文地址:https://www.cnblogs.com/python924/p/13576771.html
Copyright © 2020-2023  润新知