我可以使用 BigDecimal 类,因为它提供了算术、比例操作、舍入、比较、散列和格式转换的操作。
我只是想知道还有什么其他方法可以实现它?
我建议使用Joda Money项目中的类。它是由 Joda Time 成名的 Stephen Colebourne 开发的。
它提供了有用的类来表示金额,从/到字符串解析和格式化它们,以及许多其他相关的实用方法。
货币计算最好以整数进行,包括美分。
所以你的选择如下:
9,223,372,036,854,775,807
美分的数字,请选择多头。编辑- 正如@arshajii 在评论中指出的那样,对于某些应用领域(主要是股票市场/期货),您计算美分,小数点后 5+ 位。如果那是您想要的应用程序,那么您将不得不使用 BigInteger 的机会更大。
诠释?由于浮点舍入问题,请确保您从不使用浮点数或双精度数等。
//$100.52
int value = 10052;
int wholeDollars = value/100;
int cents = value %100;