1

In PHP, when using microtime(true), I am expecting to get in most cases 6 digits to the right of the decimal.

<?php
//version 5.5.31

$time = microtime();
$timeTrue = microtime(true);

var_dump($time, $timeTrue);

// string(21) "0.64728900 1462577720"
// float(1462577720.6473)
?>

Why is the float only showing the first four digits? Sometimes I only get three digits, which makes sense. Should it not be returning float(1462577720.647289). ie 6 digits in most cases, occasionally 5 digits?

4

1 回答 1

2

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

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

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

于 2016-05-07T00:12:41.307 回答