我正在努力解决这段代码。
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,则意味着最后两位数是我需要的两位小数。他们是美分。
任何人都可以帮助我吗?
答案 0 :(得分:4)
如果你想添加两个小数位(总是.00
,这有点多余。
return String.format("%.2f", amount > 100 ? amount/100.0 : (double) amount);
我建议你保留一套单位。你应该能够总是使用美分。如果你不这样做,你可能会感到困惑。例如,您有100和10000,均为100.00
答案 1 :(得分:1)
如果金额少于100,那么我只需要拿到金额 本身并添加“.00”如果它大于100,则意味着最后两个 数字是我需要的两位小数。
首先,您需要解决此问题。类或本机类型应该只包含一种数据,并且不应该对其他类或代码负担,并且应该详细了解如何处理数据,具体取决于具体情况。
获取该东西要么返回所有情况下的便士数,要么让它返回一个支持小数点的数字。更好的解决方案是便士的数量。
这样你就不必在你的格式中加入逻辑,当你第二次需要格式化同样的东西时,肯定不会存在。