我正在考虑编写一个用于处理小数的小型 Java 类。基本思想是有两个int
字段,一个用于保存小数点左侧的值,另一个用于保存小数点右侧的值。例如在以下号码中:
100.50
100 将在第一个 int 中,50 将在第二个 int 中。
这值得做吗,还是BigDecimal
已经在其实施中做了类似的事情?
我正在考虑编写一个用于处理小数的小型 Java 类。基本思想是有两个int
字段,一个用于保存小数点左侧的值,另一个用于保存小数点右侧的值。例如在以下号码中:
100.50
100 将在第一个 int 中,50 将在第二个 int 中。
这值得做吗,还是BigDecimal
已经在其实施中做了类似的事情?
一个好的经验法则是(转述自 J. Bloch,Effective Java,第 2 版):
“永远不要重新发明轮子。如果有一个 Java API 类可以用来做你想做的事,那么就使用它而不是尝试重写你自己的类。语言开发人员多年来一直致力于改进和优化库,通常以对独立开发人员不切实际的方式(并继续优化它们)。”
可能您的需求很简单。例如,也许您只是使用这个数字来识别一个对象(如杜威十进制系统),而您永远不会对它们进行数字运算。如果您的需求如此简单(您还没有告诉我们您将使用这些数字做什么),那么编写自己的类作为优化可能是明智的。
但是,如果您要对这些数字进行任何类型的数学运算,那么使用 BigDecimal 来表示具有固定精度的数字量绝对是正确的方法。我什至不会担心内存。内存很便宜。
还要考虑 BigDecimals 已经: