计算并且四舍五入 判断是否数字类型

String userateNow = "0";
//当前使用率
if(ObjectUtil.isNotNull(numSpaceS)&&ObjectUtil.isNotNull(numSpaceU)&&numSpaceS!=0&&numSpaceU!=0){
BigDecimal userateNowSize = new BigDecimal((double) numSpaceU / (double) numSpaceS * 100);
// 2表示2位 ROUND_HALF_UP表明四舍五入,// 此时就是保留两位小数的浮点数
String userateNowSizeStr = userateNowSize.setScale(2, BigDecimal.ROUND_HALF_UP).toString();
if(StrUtil.isNotBlank(userateNowSizeStr)){
userateNow = StringNullUtil.trimZero(userateNowSizeStr);
}
}
parkpointPlatformShowVO.setUserateNow(userateNow+"%");

//判断是否数字类型
String userateDay = biz0900StatParklot.getUserateDay();
if(StrUtil.isNotBlank(userateDay)){
userateDay=userateDay.trim().replaceAll("\\u00A0","");
}
//?:0或1个, *:0或多个, +:1或多个
Boolean isUserateDay = userateDay.matches("^[-\\+]?([0-9]+\\.?)?[0-9]+$");
if(isUserateDay){

}


/**
* 去掉小数点后面的零
* @param str
* @return
*/
public static String trimZero(String str) {
if(str==null){
return "";
}
if (str.indexOf(".") > 0) {
// 去掉多余的0
str = str.replaceAll("0+?$", "");
// 如最后一位是.则去掉
str = str.replaceAll("[.]$", "");
}
return str;
}

2.常用方法
方法
add(BigDecimal)

BigDecimal对象中的值相加,返回BigDecimal对象

subtract(BigDecimal)

BigDecimal对象中的值相减,返回BigDecimal对象

multiply(BigDecimal)

BigDecimal对象中的值相乘,返回BigDecimal对象

divide(BigDecimal)

BigDecimal对象中的值相除,返回BigDecimal对象

toString()

将BigDecimal对象中的值转换成字符串

doubleValue()

将BigDecimal对象中的值转换成双精度数

floatValue()

将BigDecimal对象中的值转换成单精度数

longValue()

将BigDecimal对象中的值转换成长整数

intValue()

将BigDecimal对象中的值转换成整数

加减乘除
BigDecimal a = new BigDecimal(5);
BigDecimal b = new BigDecimal(40);
BigDecimal add = a.add(b);
BigDecimal subtract = a.subtract(b);
BigDecimal multiply = a.multiply(b);
BigDecimal divide = a.divide(b);
System.out.println("add:" + add); //add:45
System.out.println("subtract:" + subtract); //subtract:-35
System.out.println("multiply:" + multiply); //multiply:200
System.out.println("divide:" + divide); //divide:0.125
比较大小
compareTo方法

bigDecimalA.compareTo(bigDecimalB)

BigDecimalA > bigDecimalB时,比较结果为1
BigDecimalA = bigDecimalB时,比较结果为0
BigDecimalA < bigDecimalB时,比较结果为-1
BigDecimal bigDecimal1 = new BigDecimal("4.32");
BigDecimal bigDecimal2 = new BigDecimal("3.21");
BigDecimal bigDecimal3 = bigDecimal2.subtract(bigDecimal1);
int i = bigDecimal1.compareTo(bigDecimal2);//1
int i1 = bigDecimal2.compareTo(bigDecimal2);//0
int i2 = bigDecimal3.compareTo(bigDecimal2);//-1

 

posted @ 2023-05-25 12:32  全琪俊  阅读(11)  评论(0编辑  收藏  举报