如果能整除,如结果等于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:我现在用的是将其转换为字符串,在判断小数点后的位数来做的,都感觉麻烦
ps:我现在用的是将其转换为字符串,在判断小数点后的位数来做的,都感觉麻烦
#4
System.out.printf("%.2f", mnyResult);
不过这只适用于输出,对于这个数本身还是不变的,否则还是用ls所说的BigDecimal吧
不过这只适用于输出,对于这个数本身还是不变的,否则还是用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:我现在用的是将其转换为字符串,在判断小数点后的位数来做的,都感觉麻烦
ps:我现在用的是将其转换为字符串,在判断小数点后的位数来做的,都感觉麻烦
#4
System.out.printf("%.2f", mnyResult);
不过这只适用于输出,对于这个数本身还是不变的,否则还是用ls所说的BigDecimal吧
不过这只适用于输出,对于这个数本身还是不变的,否则还是用ls所说的BigDecimal吧
#5
String .format("%.2f",float)//这个好用