时间:2021-07-01 10:21:17 帮助过:3人阅读
echo number_format(19.99 * 100, 20); // output:1,998.99999999999977262632
为什么会这样?浮点型是怎么存储的。我的想法可能是浮点型本来就不是精确存储的。
解决了这个问题也就知道为什么intval
后的值是1998
了。
echo number_format(19.99 * 100, 20); // output:1,998.99999999999977262632
为什么会这样?浮点型是怎么存储的。我的想法可能是浮点型本来就不是精确存储的。
解决了这个问题也就知道为什么intval
后的值是1998
了。
浮点数的存储精度跟系统有关,PHP 通常使用 IEEE 754 双精度格式,默认是20位有效精度。Floating point numbers
浮点数使用指南
贴上中文的浮点型 http://php.com/manual/zh/language.types.float.php