PHP microtime 缺失数字

PHP microtime missing digits

在 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 位数字?

您似乎混淆了精度与小数点后的数字。

双精度浮点数的最大精度通常为 14 到 16 位数字,而您的示例显示为 14。是的,所有数字都有效。小数点由另一个变量处理(在浮点定义级别)。

同样的原则适用于非常大的数字,在 14-15 位长后也会失去精度。