Tom*_*ncy 2 java currency rounding
假设我在Java中有一个代表金钱的小数值.
绕过这些价值观的最佳方法是什么?
例如,如果我有一个基于税率计算的值,并且我最终得到的结果是,例如,5.3999999999999995作为税额,我应该将其舍入到2位小数,只需这样做:
double d = 5.3999999999999995
BigDecimal bd = new BigDecimal(d).setScale(2, RoundingMode.HALF_EVEN);
d = bd.doubleValue();
Run Code Online (Sandbox Code Playgroud)
产生货币价值:
5.40
Run Code Online (Sandbox Code Playgroud)
大多数计算金钱的应用程序都不使用浮点(double,float); 它们使用代表较小单位的整数.例如,在美元中,货币可以用便士来代表,即1美元的1/100.
为了更好的准确性,您可能希望有一个整数代表1E-03("毫美元")或1E-06.这取决于诸如利息计算和您的精确度等问题.
| 归档时间: |
|
| 查看次数: |
8332 次 |
| 最近记录: |