事件
需要用两个Integer型的值,计算出百分比,然后四舍五入转成Integer型,下面是最终的实现方法。
public class PercentCalculateUtils {
private static final Integer HUNDRED = 100;
public Integer getPercent(Integer num, Integer sum) {
Integer percent = sum == 0 ? 0 :
new BigDecimal(num) //创建BigDecimal对象
.divide(new BigDecimal(sum), 2, RoundingMode.DOWN) //保留2位小数
.multiply(new BigDecimal(HUNDRED)) //小数乘以100
.intValue(); //转成Integer
return percent;
}
// 将乘法的结果四舍五入
public static Integer testMultiply(){
int money = new BigDecimal(
new BigDecimal(2510).multiply(new BigDecimal(0.24)).doubleValue())
.setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
return money;
}
}
测试
@Test
public void testPer(){
System.out.println("percent : "+getPercent(1,3));
}
输出:
percent : 33
经过各个数据的组合,验证此方法是没有问题的。
当然网上也有一些其他的办法,但都比较麻烦,其中有个枚举类:RoundingMode,里面有不同的枚举值,可以多尝试看看。
与君共勉!!!
版权声明:本文为fhf2424045058原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。