我一直想知道在我的简单代码问题中使用浮点数和双精度数。用户可以输入存款金额并打印当前余额。金额不会太大(我认为双倍非常适合)但更重要的是我希望它显示到小数点后两位。我目前正在使用浮点数,但只显示小数点后一位,我也无法添加小数点后两位的金额。无论如何限制添加的数量并将其限制为只有 2 个小数位?也许我可以添加一个简单的条件。
问问题
143 次
1 回答
7
您不应使用float
或double
进行财务计算;舍入误差会在意想不到的地方累积。如果您不需要超过 0.01 美元的分辨率,请使用int
或long
并以美分进行所有计算。仅在输入和输出时在美分和美元(或您使用的任何货币)之间进行转换。
如果您需要超过 0.01 美元的分辨率(例如,用于中间计算),那么您应该使用BigDecimal
数字。它专为需要非常高精度的金融计算等应用而设计。
于 2013-09-22T03:27:14.553 回答