• BigDecimal用法总结


    BigDecimal用法总结

    BigDecimal常用于金额的计算,下面总结下这次项目中BigDecimal的用法。

    1.加减乘除

    2.设置精度

    3.取反

    加减乘除分别调用函数

    [java] view plain copy

    1. public BigDecimal add(BigDecimal value);  
    2. public BigDecimal subtract(BigDecimal value);  
    3. public BigDecimal multiply(BigDecimal value);  
    4. public BigDecimal divide(BigDecimal value);  


    举例:

    [java] view plain copy

    1. BigDecimal a=new BigDecimal(10.0);  
    2. BigDecimal b=new BigDecimal(9.1);  
    3. System.out.println(a.subtract(b));  


    精度设置,为什么会设置精度,给大家看个效果

    代码如下:

    [java] view plain copy

    1. BigDecimal abig=new BigDecimal(10.0);  
    2. BigDecimal bbig=new BigDecimal(9.1);  
    3. BigDecimal cbig=new BigDecimal(8.9);  
    4.   
    5. System.out.println(abig.subtract(bbig));  
    6. System.out.println(abig.subtract(cbig));  


    结果如下:

    [java] view plain copy

    1. 0.9000000000000003552713678800500929355621337890625  
    2. 1.0999999999999996447286321199499070644378662109375  

    并不是我们希望看到的0.9和1.1,原因就是转成二进制的时候会有精度问题,导致这样的结果。所以我们可以在运算的时候加精度,也可以在实例化BigDecimal的时候用字符串。

    设置精度的方法:

    [java] view plain copy

    1. System.out.println(abig.subtract(bbig).setScale(2, BigDecimal.ROUND_HALF_UP));  
    2. System.out.println(abig.subtract(cbig).setScale(2, BigDecimal.ROUND_HALF_UP));  

    这样设置两位精度就可以啦

    [java] view plain copy

    1. 0.90  
    2. 1.10  

    字符串实例化的方法:

    [java] view plain copy

    1. BigDecimal abig=new BigDecimal("10.0");  
    2. BigDecimal bbig=new BigDecimal("9.1");  
    3. BigDecimal cbig=new BigDecimal("8.9");  



    取反

    因为Bigdecimal是无法直接用+-*/这些符号进行计算的,所以取反的时候也需要一个单独的方法来实现:

    [java] view plain copy

    1. System.out.println(abig.negate());  

    这样就会拿到它的相反数了:

    [java] view plain copy

    1. -10.0  

    这些是这次项目中用到的点

  • 相关阅读:
    程序员修炼之道读书笔记02
    程序员修炼之道读书笔记01
    2021年1月30日 体温上报app03(百度API的获取和配置方法)
    2021年1月28日 体温上报app02
    2021年1月27日 体温上报app01
    2021年1月26日 sqlite数据库
    2021年1月25日 列表与适配器
    16.CSS margin用法
    14.CSS 块级元素与行内元素
    12.CSS 简单认识margin
  • 原文地址:https://www.cnblogs.com/wangchaonan/p/10731379.html
Copyright © 2020-2023  润新知