今天看啥  ›  专栏  ›  Java知音

2.01变成了2.00,金额使用 double 被坑了!

Java知音  · 公众号  · 互联网安全 科技自媒体  · 2024-12-04 10:05
    

主要观点总结

文章主要讲述测试人员在测试过程中发现的一个bug,即订单详情中的价格展示不准确,经过排查发现是double类型的精度问题导致的。文章通过实例详细解释了double类型在进行金额转换时存在的精度问题,并提供了使用BigDecimal类进行金额转换的方法。同时,文章还进行了性能测试,发现使用BigDecimal类的性能影响并不大。

关键观点总结

关键观点1: 文章描述了一个bug,即订单详情展示金额不准确。

文章中提到,测试人员发现了一个bug,订单详情中的价格展示不正确。经过排查,确定是double类型的精度问题导致的。

关键观点2: 文章解释了double类型在进行金额转换时存在的精度问题。

文章通过实例详细解释了double类型在进行金额转换时,由于计算机中的二进制补码存储方式,存在除不尽、精度丢失的问题。例如,2.01在二进制补码存储时会变成000000010.009999999999999787。

关键观点3: 文章提供了使用BigDecimal类进行金额转换的方法。

文章介绍了Java中的BigDecimal类,专门用于处理更高精度的浮点数。文章提供了将元和分互相转换的方法,并进行了测试,证明其精度和性能都是可靠的。

关键观点4: 文章进行了性能测试,证明使用BigDecimal类的性能影响并不大。

文章中进行了性能测试,测试结果显示,使用BigDecimal类进行金额转换的性能影响并不大。虽然首次耗时略高,但整体性能良好。


免责声明:本文内容摘要由平台算法生成,仅为信息导航参考,不代表原文立场或观点。 原文内容版权归原作者所有,如您为原作者并希望删除该摘要或链接,请通过 【版权申诉通道】联系我们处理。

原文地址: 访问原文地址
总结与预览地址:访问文章预览/总结
文章地址: 访问文章快照