js大数字精度丢失怎么处理(js加法精度丢失)

作者:晨光Jason

js大数字精度丢失怎么处理(js加法精度丢失)

来源:https://blog.csdn.net/yacolspace/article/details/78287394

今天在项目中用到double类型数据加减运算时,遇到了一个奇怪的问题,比如1 20.2 300.03,理论上结果应该是321.23,其实结果并不是这样。

解决方法

相信从上面的文档大家也已经找出了解决方法,在需要精确的表示两位小数时我们需要把他们转换为BigDecimal对象,然后再进行运算。

另外需要注意,使用BigDecimal(double val)构造函数时仍会存在精度丢失问题,建议使用BigDecimal(String val)。这就需要先把double转换为字符串然后在作为BigDecimal(String val)构造函数的参数。转换为BigDecimal对象之后再进行加减乘除操作,这样精度就不会出现问题了。这也是为什么有关金钱数据存储都使用BigDecimal。

处理double类型数据的加、减、乘、除运算时,使用如下方法:

验证文章开头提到的问题是否解决,

public?double?addDouble()?{????????double?result1 =?add(1,?20.2);????????double?result2 =?add(result1,?300.03);????????System.out.println(“使用BigDecimal时结果值:”? result2);????????return?result2;????}

打印结果值

跟预想中的结果值一样,解决了double类型数据加减操作时精度丢失的问题。

本文来自最新的寂寞投稿,不代表一阔营销立场,如若转载,请注明出处:https://www.1kuo.com/292391.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。