在PHP中,当使用microtime(true)时,我希望在大多数情况下得到小数点右边的6位数。
<?php
//version 5.5.31
$time = microtime();
$timeTrue = microtime(true);
var_dump($time, $timeTrue);
// string(21) "0.64728900 1462577720"
// float(1462577720.6473)
?>
为什么浮动只显示前四位数?有时我只得到三位数,这是有道理的。它不应该返回浮动(1462577720.647289)。即大多数情况下是6位数,偶尔是5位数?
答案 0 :(得分:2)
您似乎在精确度与小数点后的数字混淆。
双精度浮点的最大精度通常为14到16位,示例显示14.是的,所有数字都计算在内。小数点由另一个变量处理(在浮点定义级别)。
同样的原则适用于非常大的数字,这些数字在14-15位数字后也会失去精确度。