坑!Double、Float的误区,java 编程中用什么数据类型表示价格

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Certain_/article/details/89222283

       看到这个问题的时候,如果你的第一反应就是double或是float, 那么恭喜你!你掉坑里了!

其实无论是double还是float在运算时都存在精度丢失的问题,虽然差值近似零,但是数据量多起来,积少成多,想想都恐怕,特别当今是大数据时代。银行这些对精度要求特别高的,更加不能忽略。其实java对财务这块有一个专门的数据类型BigDecimal,它有很多构造函数,但是唯独参数为String的构造函数才能计算出精确的数值 。下面就看代码吧

用参数Double构造出来的BigDecimal运算值失去精度,应该是跟参数为Double有关的。

其实BigDecimal更像一个工具类,加减乘除的都有自己的函数,有兴趣的你可以自己再自己深入研究一下。

猜你喜欢

转载自blog.csdn.net/Certain_/article/details/89222283
今日推荐