Java中BigDecimal使用

                                                            Java中BigDecimal使用注意事项

    一,问题描述

            Java中基础数据类型例如Double,Float等等,通过只能用来做科学计算或者指针计数,对于像商业银行这类机构要求对货币计算比较精确的时候,我们可以使用Java中对于大小数的封装类 java.math.BigDecimal,我本篇博客不打算去讨论详细的用法,只提出一个使用细节供大家参考

            例如,我之前曾经写过如下一段代码,

                BigDecimal a = new BigDecimal(1.00);

                BigDecimal a = new BigDecimal(0.05);

                BigDecimal c = a.multiply(b);

                c.setScale(2, BigDecimal.ROUND_HALF_UP); 

                System.out.println(c);      

            发现BigDecimal的精度老是有问题,结果老是输出 0.050000000000000000000

    二,解决方案

            其实在如上的a和b进行乘法的时候,此时的精度是a和b的精度之和,之后对 c 进行设置精度后,没有对 c 的地址指向重新赋值,所以 c 设置精度才不起效果,正确使用方法如下:

            Java中BigDecimal使用_第1张图片

    

你可能感兴趣的:(BigDecimal保留小数位)