前言
今天在开发过程中碰到一个浮点数计算的精度问题,事实上也不是第一次见到这种情况了,之前也碰到过好几次,但是由于时间原因,知识按照网上说的方法解决掉了这个问题,并没有深究其中原理,等到不忙的时候也忘了这回事了,今天刚好有时间,来研究一下这个问题,以下内容是我自己在网上看过几篇相关博文再加上自己的理解写出来的,如果有错误烦请指正
问题
假设有如下代码块,大家猜想一下会输出什么,这里正确结果应该是 0.1 对吧,但是这里却输出的是 0.099999999999909,起初看到这个结果我也很匪夷所思,不急,下面我来说下原理
$a = 2000;
$b = 1999.9;
$c = $a-$b