注释中是该行的输出,可以看到当浮点数的个位数字为6、7、8、9时,输出的结果不符合预期。
var_dump(intval(10.40*100)); // 1040
var_dump(intval(11.40*100)); // 1140
var_dump(intval(12.40*100)); // 1240
var_dump(intval(13.40*100)); // 1340
var_dump(intval(14.40*100)); // 1440
var_dump(intval(15.40*100)); // 1540
var_dump(intval(16.40*100)); // 1639
var_dump(intval(17.40*100)); // 1739
var_dump(intval(18.40*100)); // 1839
var_dump(intval(19.40*100)); // 1939
回复内容:先看 关于php浮点数你应该知道的(all ‘bogus’ about the float in php)
然后再看: php浮点数的一个常见问题的解答具体解释参见这里:
0.30000000000000004原因是二进制无法精确表示1/10等等的小数,所有使用ieee754标准存储浮点数内容的语言都存在这个问(功)题(能)