5,【java面试必会】金额处理

存储金额到底要用什么数据类型? 用Double,float ,还是BigDecimal?看似简单的一道题。其实是面试中的一个高频题。如果你回答double 了,那么就直接挂了,用double到底错在哪里?下面看一题。

double a = 0.05;
double b = 0.06;
System.out.println(b-a);

答案应该是多少呢? 是不是脱口而出0.01.不是 !!!!
结果是:

0.009999999999999995

double和float一样都是浮点型,浮点型和小数不是一样的。
浮点数计算不是一个确定的值,金额计算出的值必须是准确的。
所以我们一般用java.math.BigDecimal.

猜你喜欢

转载自blog.csdn.net/weixin_33759269/article/details/86958249