我一直想知道在我的简单代码问题中使用浮点数和双精度数。这将是关于金钱的用户将能够输入金额存款和打印出当前余额。金额不会太大(我认为双倍很大)但更重要的是我希望它显示为两位小数。 我目前使用浮动,但只显示一个小数,我也不能添加两位小数的金额。是否有限制添加量并限制它只有2位小数?也许我可以添加一个简单的条件。
答案 0 :(得分:7)
您不应使用float
或double
进行财务计算;舍入错误可能会在意外的地方累积。如果您不需要超过0.01美元的分辨率,请使用int
或long
并以分数计算所有计算结果。仅在输入和输出上转换美分和美元(或您正在使用的任何货币)。
如果您需要的分辨率高于0.01美元(例如,用于中间计算),则应使用BigDecimal
个数字。它专为需要非常高精度的财务计算等应用而设计。