BigDecimal的运算及常⽤知识/**
多个BigDecimal数相加和
@param i
@param arg
@return
*/
public static BigDecimal getBigDecimalSum(BigDecimal i, BigDecimal… arg) {
BigDecimal sum = i;
for (BigDecimal b : arg) {
sum = sum.add(b);
}
return sum;
}
/**
差
@param i
@param arg
@return
*/
public static BigDecimal getBigDecimalDifference(BigDecimal i, BigDecimal… arg) { BigDecimal difference = i;
for (BigDecimal b : arg) {
difference = difference.subtract(b);
}
return difference;
}
if(big_decimal.equals(BigDecimal.Zero)) //是否等于0
BigDecimal bignum1 = new BigDecimal(“10”);
BigDecimal bignum2 = new BigDecimal(“5”);
BigDecimal bignum3 = null;
**//加法**
bignum3 = bignum1.add(bignum2);
System.out.println("和是:" + bignum3);
//减法
bignum3 = bignum1.subtract(bignum2);
System.out.println("差是:" + bignum3);
//乘法
bignum3 = bignum1.multiply(bignum2);
System.out.println("积是:" + bignum3);
//除法
bignum3 = bignum1.divide(bignum2);
System.out.println("商是:" + bignum3);
divide(orderTotal, 2, BigDecimal.ROUND_HALF_UP)
⽐较:
if(apareTo(b) == -1){
System.out.println(“a⼩于b”);
}
if(apareTo(b) == 0){
System.out.println(“a等于b”);
}bigdecimal除法保留小数
if(apareTo(b) == 1){
System.out.println(“a⼤于b”);
}
if(apareTo(b) > -1){
System.out.println(“a⼤于等于b”);
}
if(apareTo(b) < 1){
System.out.println(“a⼩于等于b”);
}
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则向下舍
setScaler(1,BigDecimal.ROUND_CEILING)接近正⽆穷⼤的舍⼊
setScaler(1,BigDecimal.ROUND_FLOOR)接近负⽆穷⼤的舍⼊,数字>0和ROUND_UP作⽤⼀样,数
字<0和ROUND_DOWN作⽤⼀样setScaler(1,BigDecimal.ROUND_HALF_EVEN)向最接近的数字舍⼊,如果与两个相邻数字的距离相等,则向相邻的偶数舍⼊。
注释:
1:scale指的是你⼩数点后的位数。⽐如123.456则score就是3.
score()就是BigDecimal类中的⽅法啊。
⽐如:BigDecimal b = new BigDecimal(“123.456”);
b.scale(),返回的就是3.
2:roundingMode是⼩数的保留模式。它们都是BigDecimal中的常量字段,有很多种。
⽐如:BigDecimal.ROUND_HALF_UP表⽰的就是4舍5⼊。
3:pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
的意思是说:我⽤⼀个BigDecimal对象除以divisor后的结果,并且要求这个结果保留有scale个⼩数位,roundingMode表⽰的就是保留模式是什么,是四舍五⼊啊还是其它的,你可以⾃⼰选!
4:对于⼀般add、subtract、multiply⽅法的⼩数位格式化如下:
BigDecimal mData = new BigDecimal(“9.655”).setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(“mData=” + mData);
----结果:----- mData=9.66
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论