概述
BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次方。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。
BigDecimal对金额的计算有着很友好的公式,希望能帮助到大家
一:计算,加减乘除
BigDecimal提供了内置的加减乘除函数
- 加法:
add()函数
- 减法:
subtract()函数
- 乘法:
multiply()函数
- 除法:
divide()函数
public static void main(String[] args) {
//add 加法
//subtract 减法
//multiply 乘法
//divide 除法
BigDecimal B1 = new BigDecimal("9");
BigDecimal B2 = new BigDecimal("3");
System.out.println("B1+B2="+B1.add(B2));//B1.add(B2)
System.out.println("B1-B2="+B1.subtract(B2));//B1.subtract(B2)
System.out.println("B1*B2="+B1.multiply(B2));//B1.multiply(B2)
System.out.println("B1/B2="+B1.divide(B2,2));//B1.divide(B2) 注:roundingMode(如果B1不能整除B2,roundingMode是精确到小数点几位,这里是精确到小数点后两位)
}
输出结果
B1+B2=12
B1-B2=6
B1*B2=27
B1/B2=3
二:比较大小
BigDecimal的compareTo方法可以忽略精度的不同,只比较数值是否相同。
public static void main(String[] args) {
BigDecimal B1 = new BigDecimal("9");
BigDecimal B2 = new BigDecimal("3");
//前提为a、b均不能为null
if(B1.compareTo(B2) == -1){
System.out.println("a小于b");
}
if(B1.compareTo(B2) == 0){
System.out.println("a等于b");
}
if(B1.compareTo(B2) == 1){
System.out.println("a大于b");
}
if(B1.compareTo(B2) > -1){
System.out.println("a大于等于b");
}
if(B1.compareTo(B2) < 1){
System.out.println("a小于等于b");
}
}
输出结果
a大于b
a大于等于b
最后
以上就是感性草丛为你收集整理的BigDecimal类型计算和比较大小的全部内容,希望文章能够帮你解决BigDecimal类型计算和比较大小所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复