java integer 小数_java中Integer运算保留2位小数

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;

}

本文同步分享在 博客“IT云清”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值