我正在考虑写两个有限精度的BigDecimal替代品,即DecimalInt和DecimalLong。这些函数能够处理int和long的实数范围内的任意小数位数的数字,这些数字可以以可变和不可变的形式创建。我的计划是让十进制支持从+/-999999999到+/-0.999999999和十进制支持相同,但最多支持18位数字。
基本要求是(a)精益足迹(2个类,外加OverflowException)和(b)完全支持所有基本操作以及所有有意义的数学。
搜索结果并没有返回任何明显的点击-它们似乎都与任意小数有关。
编辑:这与BigDecimal不同,因为它应该(a)更高效地不处理一个int数组,并且(b)它不会包装BigInteger,所以它也会更节省内存,并且(c)它有一个可变选项,所以在那里也会更快。总之,对于简单的用例,比如“我想存储一个银行余额,而不需要BigDecimal的开销和double的不精确性”。
编辑:我打算使用int或long来完成所有的数学运算,以避免经典问题:1586.60-708.75=877.84999999999而不是877.85