【发布时间】:2013-07-24 20:03:04
【问题描述】:
我可以使用 BigDecimal 类,因为它提供算术、比例操作、舍入、比较、散列和格式转换的操作。
我只是想知道还有什么其他方法可以实现它?
【问题讨论】:
-
仅供参考:Java 9 将在 JDK 中包含一个 Money/Currency API。然而,这将是另外 3 年(至少!)直到它出来......
标签: java bigdecimal currency
我可以使用 BigDecimal 类,因为它提供算术、比例操作、舍入、比较、散列和格式转换的操作。
我只是想知道还有什么其他方法可以实现它?
【问题讨论】:
标签: java bigdecimal currency
货币计算最好以整数进行,包括美分。
所以你的选择如下:
9,223,372,036,854,775,807 美分的数字,请选择多头。编辑 - 正如@arshajii 在 cmets 中指出的那样,对于某些应用领域(主要是股票市场/期货),您计算美分,小数点后 5 位以上。如果那是您的预期应用程序,那么您将不得不使用 BigInteger 的可能性更大。
【讨论】:
我建议使用Joda Money 项目中的类。它是由 Joda Time 成名的 Stephen Colebourne 开发的。
它提供了有用的类来表示金额,从字符串解析和格式化它们,以及许多其他相关的实用方法。
【讨论】:
int?由于浮点舍入问题,请确保您从不使用浮点数或双精度数等。
//$100.52
int value = 10052;
int wholeDollars = value/100;
int cents = value %100;
【讨论】: