我有这个浮动98.01645,我用这个函数得到98.02:
String lastCredit = String.format("%.2f", AppSingleton.getInstance().credit);
我想要的是获得98.01(只有两位小数或不是四舍五入的数字)。我正在尝试,但我无法做到这一点。
提前致谢!
答案 0 :(得分:3)
手动完成:
String lastCredit = String.format("%.2f", java.lang.Math.floor(100.0*AppSingleton.getInstance().credit)*0.01);
乘以100.0将小数点向右移动两次,然后向下舍入,然后乘以0.01将小数点二向左移动。
答案 1 :(得分:1)
你可以试试这个
String lastCredit = String.format("%.2f",Math.floor((98.01645 * 100)) / 100);
System.out.println(lastCredit);
您基本上将该值乘以100,因为您需要在小数点后面加上2个数字并向下舍入该值。得到结果后,再将它除以100。
答案 2 :(得分:0)
使用以下代码代替String lastCredit = String.format("%.2f", AppSingleton.getInstance().credit);
DecimalFormat decimalFormat = new DecimalFormat("#.##");
decimalFormat.setRoundingMode(RoundingMode.FLOOR);
String lastCredit = decimalFormat.format(f);
答案 3 :(得分:0)
我不会称之为优雅,但您可以使用String.format获取3个小数位并使用子字符串删除最后一个:
String lastCredit = String.format("%.3f", AppSingleton.getInstance().credit);
lastCredit = lastCredit.substring(0, lastCredit.length() - 1);