1

我可以使用 BigDecimal 类,因为它提供了算术、比例操作、舍入、比较、散列和格式转换的操作。

我只是想知道还有什么其他方法可以实现它?

4

3 回答 3

1

我建议使用Joda Money项目中的类。它是由 Joda Time 成名的 Stephen Colebourne 开发的。

它提供了有用的类来表示金额,从/到字符串解析和格式化它们,以及许多其他相关的实用方法。

于 2013-07-24T20:58:28.780 回答
1

货币计算最好以整数进行,包括美分。

所以你的选择如下:

  1. 如果您 100% 确定您永远不需要表示大于9,223,372,036,854,775,807美分的数字,请选择多头。
  2. 如果您需要更大的东西,请使用 BigInteger。

编辑- 正如@arshajii 在评论中指出的那样,对于某些应用领域(主要是股票市场/期货),您计算美分,小数点后 5+ 位。如果那是您想要的应用程序,那么您将不得不使用 BigInteger 的机会更大。

于 2013-07-24T20:07:11.737 回答
0

诠释?由于浮点舍入问题,请确保您从不使用浮点数或双精度数等。

//$100.52
int value = 10052;

int wholeDollars = value/100;
int cents = value %100;
于 2013-07-24T20:06:30.527 回答