zoukankan      html  css  js  c++  java
  • BigDecimal 方法大全

    一.舍入模式的三种定义方式

    1.BigDecimal 常量

    模式 常量名 描述
    向上取整 ROUND_DOWN 直接删除多余的小数位
    向下取整 ROUND_UP 2.35变成2.3
    四舍五入 ROUND_HALF_UP 2.35变成2.4, 2.34变成2.3
    五舍六入 ROUND_HALF_DOWN 5也会向下舍 2.35变成2.3
    接近正无穷大的舍入 ROUND_CEILING -2.35 变成 -2.3,2.35变成2.4
    接近负无穷大的舍入 ROUND_FLOOR -2.35 变成 -2.4, 2.35变成2.3
    向最接近的数字舍入 ROUND_HALF_EVEN 如果与两个相邻数字的距离相等,则向相邻的偶数舍入
    计算结果是精确的,不需要舍入模式 ROUND_UNNECESSARY 不舍入,如果结果精确会抛出异常

    2.RoundingMode 枚举

    其实就是枚举类里面封装了一个常量,引用了上面的枚举类常量,运用方法:RoundingMode.HALF_UP

    UP(BigDecimal.ROUND_UP),
    DOWN(BigDecimal.ROUND_DOWN),
    CEILING(BigDecimal.ROUND_CEILING),
    FLOOR(BigDecimal.ROUND_FLOOR),
    HALF_UP(BigDecimal.ROUND_HALF_UP),
    HALF_DOWN(BigDecimal.ROUND_HALF_DOWN),
    HALF_EVEN(BigDecimal.ROUND_HALF_EVEN),
    UNNECESSARY(BigDecimal.ROUND_UNNECESSARY);
    

    3.MathContext 不可变对象

    为一个不可变对象,他常用的构造方法如下:

    • MathContext(int setPrecision) 精度,默认舍入模式为四舍五入
    • MathContext(int setPrecision,RoundingMode setRoundingMode)
      精度,舍入模式

    二.常用运算方法

    1.加法 add()

    方法 参数解释 描述
    add(BigDecimal augend) subtrahend:加数 精度取两个数中精度较大的那个精度
    add(BigDecimal augend,MathContext mc) subtrahend:加数,mc:看上面的MathContext

    2.减法 subtract()

    方法 参数解释 描述
    subtract(BigDecimal subtrahend) subtrahend:减数 精度取两个数中精度较大的那个精度
    subtract(BigDecimal subtrahend,MathContext mc) subtrahend:减数,mc:看上面的MathContext

    3.乘法 multiply()

    方法 参数解释 描述
    multiply(BigDecimal multiplicand) multiplicand:另一个乘数 精度为两个乘数的精度相乘
    multiply(BigDecimal multiplicand, MathContext mc) multiplicand:另一个乘数,mc:看上面的MathContext

    4.除法 divide()

    方法 参数解释 描述
    divide(BigDecimal divisor) divisor:除数 不能整除就报错
    divide(BigDecimal divisor,int roundingMode) divisor:除数,roundingMode:保留小数 默认舍入模式为ROUND_UNNECESSARY
    divide(BigDecimal divisor,int scale,int roundingMode) divisor:除数,scale:保留位数,roundingMode:舍入模式

    5.保留几位小数 setScale()

    方法 参数解释
    setScale(int newScale,int roundingMode) 第一个参数为保存的小数位数,第二个参数为舍入模式
    setScale(int newScale,RoundingMode roundingMode) 第一个参数为保留的小数位数,第二个参数为舍入模式枚举类
    setScale(int newScale) 第一个参数为保留的小数位数,默认的舍入模式为不舍入

    6.比较大小 compareTo()

    方法 参数解释 描述
    compareTo(BigDecimal val) val:比较的参数 调用方法对象>val 返回 1,调用方法对象 < val 返回 -1,调用方法对象 = val 返回 0

    三.其他方法

    方法 方法用途
    toString() 将BigDecimal对象的数值转换成字符串
    floatValue 将BigDecimal对象中的值以单精度数返回
    longValue() 将BigDecimal对象中的值以长整数返回
    intValue() 将BigDecimal对象中的值以整数返回
    max(BigDecimal val) 取两个数中最大的一个
    min(BigDecimal val)
    remainder(BigDecimal divisor) 求余数,求BigDecimal类型数据除以divisor的余数
    abs() 绝对值,求BigDecimal类型数据的绝对值
    negate() 相反数,求BigDecimal类型数据的相反数
  • 相关阅读:
    访问oss压缩文件失败
    uniapp项目再使用vue-cli启动压缩失败
    航天丰益面试题
    axios上传图片遇见问题
    formateDate
    mongoose中Documents的save方法
    腾讯云nginx配置https
    filter逻辑bug
    vue-infinite-loading 过滤器tab正确使用
    使用pem连接服务器
  • 原文地址:https://www.cnblogs.com/xiaodou00/p/15043194.html
Copyright © 2011-2022 走看看