-4

我正在考虑编写一个用于处理小数的小型 Java 类。基本思想是有两个int字段,一个用于保存小数点左侧的值,另一个用于保存小数点右侧的值。例如在以下号码中:

100.50

100 将在第一个 int 中,50 将在第二个 int 中。

这值得做吗,还是BigDecimal已经在其实施中做了类似的事情?

4

1 回答 1

4

一个好的经验法则是(转述自 J. Bloch,Effective Java,第 2 版):

“永远不要重新发明轮子。如果有一个 Java API 类可以用来做你想做的事,那么就使用它而不是尝试重写你自己的类。语言开发人员多年来一直致力于改进和优化库,通常以对独立开发人员不切实际的方式(并继续优化它们)。”

可能您的需求很简单。例如,也许您只是使用这个数字来识别一个对象(如杜威十进制系统),而您永远不会对它们进行数字运算。如果您的需求如此简单(您还没有告诉我们您将使用这些数字做什么),那么编写自己的类作为优化可能是明智的。

但是,如果您要对这些数字进行任何类型的数学运算,那么使用 BigDecimal 来表示具有固定精度的数字量绝对是正确的方法。我什至不会担心内存。内存很便宜。

还要考虑 BigDecimals 已经:

  • 是不可变的
  • 是 Number 的子类
  • 实现 Comparable 接口
  • 提供算术、比例操作、舍入、比较、散列和格式转换的操作。
于 2013-10-13T13:37:41.150 回答