zoukankan      html  css  js  c++  java
  • java.math.BigDecimal 加减乘除

    方法的声明:

    public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

    参数解析:

    divisor是除数,scale是精确度,roundingMode是结果的取值方式。

    返回值:

    返回的结果也是一个BigDecimal

    BigDecimal a = new BigDecimal (10);
    BigDecimal b = new BigDecimal (9);
    BigDecimal c = new BigDecimal (8);

    //注意:a、b、C均不能为null,否则会报空指针
    //四个方法返回的结果类型都为 BigDecimal,可以连续操作

    //加法 add()
    System.out.println(a.add(b));

    //减法 subtract()
    System.out.println(a.subtract(b));

    //乘法 multiply()
    System.out.println(a.multiply(b));

    //除法 divide()
    //使用除法时注意:
    //1.需要设置结果的小数保留位数,防止存在除不尽的情况,如果在知道能够除尽的前提下可以不设置
    //2.除数不能为0
    //3.以上两种情况都会报 java.lang.ArithmeticException
    int scale = 2; //2表示结果保留两位小数
    int roundingMode = 4; //4表示舍入方式为四舍五入,该参数取值范围为[0-7],是BigDecimal类定义的8个静态常量
    System.out.println(a.divide(b, scale, roundingMode));//表示保留两位小数,同时进行四舍五入

    //综合使用
    System.out.println(a.add(b).subtract(c));//a + b - c
    System.out.println(a.multiply(b).divide(c, scale, roundingMode));//a * b / c
    System.out.println((a.add(c)).divide(b));//(a + c)/b

    toPlainString()和stripTrailingZeros()

    stripTrailingZeros()函数就是用于去除末尾多余的0的;

    要避免输出科学计数法的字符串,要用toPlainString()函数代替toString()。

    即:

    BigDecimal num = new BigDecimal ("0.10");//初始化参数推荐使用String类型

    可以这样使用==》num .stripTrailingZeros().toPlainString() ;  结果是0.1

    toPlainString() //转为普遍计数法输出

    //给一个字符串1.238761976E-10
    //如何得到0.0000000001238761976这个字符串呢?
    BigDecimal bd = new BigDecimal("1.238761976E-10");  
    System.out.println(bd.toPlainString());
    

    stripTrailingZeros() //去掉末尾0

    //给一个字符串1245600.000
    //如何得到1245600这个字符串?
    BigDecimal bd=new BigDecimal("1245600.000");
    System.out.println(bd.stripTrailingZeros());
    

      

  • 相关阅读:
    如何使用数据卷在宿主机和docker容器之间共享文件
    Debian 7 安装 Docker
    ajax简单封装
    GridView列的排序功能
    SqlHelper帮助类
    模板引擎小例子
    WCF练习小程序总结
    热线接口开发调试工作记录
    在Oracle中使用rank()over()排名的问题
    项目实施中出现的问题点汇总
  • 原文地址:https://www.cnblogs.com/weiyi1314/p/15448727.html
Copyright © 2011-2022 走看看