java中Integer运算保留2位小数
Lan
2020-03-04 10:23
124 人阅读
0 条评论
1.整数型运算时,结果会自动去除小数点后面的部分,如果需要适当的保留几位小数,需要转为fload类型,分子或者分母或者都转
如:
计算5除以6,保留2位小数
BigDecimal b = new BigDecimal((float)5/6);四舍五入保留2位
Double result = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();如需保留3位
Double result = b.setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue();
2.第二种方法
DecimalFormat df = new DecimalFormat("0.00"); Double result = df.format((float)5/6);如需保留3位
DecimalFormat df = new DecimalFormat("0.000"); Double result = df.format((float)5/6);
3.第三种
String percent = new BigDecimal((double)num*100/sum).setScale(2,BigDecimal.ROUND_HALF_UP)+"%";
4.第四种:
计算百分比
/**
* a / b 计算百分比
* @param a
* @param b
* @return eg:65.32%
*/
public static String ADivideBPercent(BigDecimal a,BigDecimal b){
String percent =
b == null ? "-" :
b.compareTo(new BigDecimal(0)) == 0 ? "-":
a == null ? "0.00%" :
a.multiply(new BigDecimal(100)).divide(b,2,BigDecimal.ROUND_HALF_UP) + "%";
return percent;
}
赞赏
本文详细介绍在Java中如何处理整数型运算结果的小数部分,提供了四种有效的方法来保留指定位数的小数,包括使用BigDecimal、DecimalFormat、字符串拼接及自定义百分比计算函数。

896

被折叠的 条评论
为什么被折叠?



