关于PHP浮点数计算精度问题 intval(0.57*100)
请大神详细解释一下。
浮点数这个问题:$a = 0.57*100 = 56.999999999999
$a = (int)$a; 56
但是为啥只有0.57和0.58呢,其他不存在这个问题(例如:0.55,0.59都没问题)。
我们都知道计算机的本质就是1和2。浮点型的存储机制就是这样。看起来是有位数的 但它在二进制里面是无穷的 如果你想处理这个问题 先把浮点数转成字符串类型 在转成数字类型方法
intval(strval(0.57*100));
看下鸟叔的这篇博客你就懂了 www.laruence.com/2013/03/26/2884.h...