如何将整数格式化为两位小数?

时间:2013-01-07 14:01:53

标签: java

  

可能重复:
  How to format an integer to have two decimals?

我正在努力解决这段代码。

DecimalFormat df = new DecimalFormat("00.##");
df.setMinimumFractionDigits(2);
return df.format(Integer.valueOf(amount));

这就是我需要的:

  

输入:2,输出:2.00

     

输入20,输出:20,00

     

输入1003,输出:100,30

     

输入120323,输出:1.203,23(一千二百三十二三美分)

我无法使用DecimalFormat,因为我没有“example ##。##”模式。

我应该总是有两位小数。如果金额小于100,那么我只需要取金额并添加“.00”如果它大于100,则意味着最后两位数是我需要的两位小数。他们是美分。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:4)

如果你想添加两个小数位(总是.00,这有点多余。

return String.format("%.2f", amount > 100 ? amount/100.0 : (double) amount);

我建议你保留一套单位。你应该能够总是使用美分。如果你不这样做,你可能会感到困惑。例如,您有100和10000,均为100.00

答案 1 :(得分:1)

  

如果金额少于100,那么我只需要拿到金额   本身并添加“.00”如果它大于100,则意味着最后两个   数字是我需要的两位小数。

首先,您需要解决此问题。类或本机类型应该只包含一种数据,并且不应该对其他类或代码负担,并且应该详细了解如何处理数据,具体取决于具体情况

获取该东西要么返回所有情况下的便士数,要么让它返回一个支持小数点的数字。更好的解决方案是便士的数量。

这样你就不必在你的格式中加入逻辑,当你第二次需要格式化同样的东西时,肯定不会存在。