首先来看第一个例子:
var_dump((1200.85*100) === 120085);
你猜猜看打印出来的结果会是什么呢?true 还是 false呢?
其实这个不用想,肯定是false,为什么呢,因为左边是浮点型,右边是整型,三个等号===表示全等。
那我们看第二个例子:
var_dump((1200.85*100) == 120085);
这个时候你肯定想都不想,肯定是true咯,因为两边的值都是120085
如果你这样想的话,那你就错了。其实你运行上面的代码,结果回是 false。
那我们再看第三个例子:
var_dump(1200.81 * 100 == 120081);
和第二个例子差不多,就是稍微改变了一点点,但是结果竟然是true了,所以结果是不一定的哦!!!
第四个例子:
var_dump(120085 - 1200.85 * 100);
打印出来的结果不是0,是float 1.45519152284E-11
那我们平时开发过程中如何处理呢?
我来直接公布答案。。。。。。var_dump(round(1200.85 * 100) == 120085);
使用round函数即可解决问题!!!