██保留小数点后两位,不足两位补0 ???██

时间:2021-07-10 18:32:12
我有数值需要乘除并且结果四舍五入保留两位小数,
如果能整除,如结果等于2.4则要求显示结果为2.40

我现在用的是下面的方法---
float mnyResult=float(12/5);
mnyResult=Math.round(money*100);
mnyResult/=100;

这个方法四舍五入可以,但不能保证小数点后若只有一位,则补0
如2.4 变成 2.40

--------------------
有没有什么好的方法呀 ???

5 个解决方案

#1




int roundingMode = 4;//表示四舍五入,可以选择其他舍值方式,例如去尾,等等.

BigDecimal bd = new BigDecimal((double)mnyResult); 

bd = bd.setScale(2,roundingMode); 

mnyResult = bd.floatValue(); 

#2


我记得好像math里面有一个很简单的方法的

但是没有查到暂时

#3


有没有更简单(计算步骤更少),最好不要创建新对象的方法
ps:我现在用的是将其转换为字符串,在判断小数点后的位数来做的,都感觉麻烦

#4


System.out.printf("%.2f", mnyResult);

不过这只适用于输出,对于这个数本身还是不变的,否则还是用ls所说的BigDecimal吧

#5


String .format("%.2f",float)//这个好用

#1




int roundingMode = 4;//表示四舍五入,可以选择其他舍值方式,例如去尾,等等.

BigDecimal bd = new BigDecimal((double)mnyResult); 

bd = bd.setScale(2,roundingMode); 

mnyResult = bd.floatValue(); 

#2


我记得好像math里面有一个很简单的方法的

但是没有查到暂时

#3


有没有更简单(计算步骤更少),最好不要创建新对象的方法
ps:我现在用的是将其转换为字符串,在判断小数点后的位数来做的,都感觉麻烦

#4


System.out.printf("%.2f", mnyResult);

不过这只适用于输出,对于这个数本身还是不变的,否则还是用ls所说的BigDecimal吧

#5


String .format("%.2f",float)//这个好用