我在工作中,要计算系统本年成交额,累计成交额,但是关于金额该使用double还是float,陷入了思考中。
后来发现在金融计算中,必要的要使用BigDecimal,因为float和double都不太合适
比如a-b a的值为2,b的值为1.1 程序计算出来的是0.89999
因为计算机进行的是二进制,我们输入的十进制数字会先变成二进制,再变成十进制输出,float和double提供了快速的运算,然后问题在于转换二进制的时候,有些数字不能完全进行转换,只能无限接近于原本的值。就会导致结果不正确。
BigDecimal可以表示任意精度的小数,并进行计算。最好基于整数或string的构造函数来创建BigDecimal对象。
在金融计算场景下,由于float和double类型存在精度损失问题,可能导致计算结果出现误差。因此,推荐使用BigDecimal进行高精度计算,它能确保数值计算的准确性,避免因二进制转换造成的精度损失。
1120

被折叠的 条评论
为什么被折叠?



