-1

可能重复:
如何将整数格式化为有两位小数?

我在这里为这段代码苦苦挣扎。

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,因为我没有“示例 ##.##”模式。

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

谁能帮我?

4

2 回答 2

4

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

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

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

于 2013-01-07T14:08:29.240 回答
1

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

首先你需要解决这个问题。一个类或本机类型应该只保存一种数据,而不应该让其他类或代码根据具体情况对如何处理该数据的详细知识造成负担

让那个东西在所有情况下都返回便士的数字,或者让它返回一个支持小数点的数字。更好的解决方案是便士的数量。

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

于 2013-01-07T14:10:32.027 回答