假设我在 Java 中有一个代表金钱的十进制值。
舍入这些值的最佳方法是什么?
例如,如果我有一个根据税率计算的值,那么我最终会得到以下结果:5.3999999999999995
作为税额,我是否应该将其四舍五入到小数点后两位:
double d = 5.3999999999999995
BigDecimal bd = new BigDecimal(d).setScale(2, RoundingMode.HALF_EVEN);
d = bd.doubleValue();
产生货币价值:
5.40
大多数计算金钱的应用程序不使用浮点(double
, float
);他们使用代表较小单位的整数。例如,以美元为例,货币可以表示为pennies即 1/100 美元。
为了获得更高的准确性,您可能需要一个代表 1E-03(“毫美元”)或 1E-06 的整数。这取决于利息计算和您的精确度等问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)