java后端需要加减乘除和比例计算等问题

4 篇文章 0 订阅

api:BigDecimal常用 API

java.math 包中提供了 API 类 BigDecimal 用来对超过 16位有效位的数进行精确的运算。
BigDecimal 所创建的是对象,所以不能使用 +、-、*、/、等算术运算符直接对其对象进行数学运算。

BigDecimal 一共有4个构造方法:
BigDecimal(int) 创建一个具有参数所指定整数值的对象
BigDecimal(double) 创建一个具有参数所指定双精度值的对象
BigDecimal(long) 创建一个具有参数所指定整数值的对象
BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。

BigDecimal 运算方式:
BigDecimal add(BigDecimal augend) 加法运算
BigDecimal subtract(BigDecimal subtrahend) 减法运算
BigDecimal multiply(BigDecimal multiplicand) 乘法运算
BigDecimal divide(BigDecimal divisor) 除法运算

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

BigDecimal 常用小数点处理:
BigDecimal.setScale 用于格式化小数点
setScale(1) 表示保留以为小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN) 直接删除多余的小数位,如 2.35 会变成 2.3
setScale(1,BigDecimal.ROUND_UP) 进位处理,2.35 编程 2.4
setScale(1,BigDecimal.ROUND_HALF_UP) 四舍五入,2.35 编程 2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN) 四舍五入,2.35 编程 2.3 ,如果 5 则向下舍
 

例子:求百分比除数为两个相加

a.setxxx(

NumUtil.ofBD(字段1).divide(NumUtil.ofBD(字段2).add(NumUtil.ofBD(字段3)), 2, BigDecimal.ROUND_HALF_UP)
                                .multiply(new BigDecimal(100)))

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值