<p>我的印象是,PHP中的浮点数在默认情况下使用<code>echo</code>或<code>print</code>命令显示,而不使用您想要的所有小数</p>
<p>将<code>printf()</code>或<code>sprintf()</code>与<code>%f</code>说明符一起使用,并添加您想要的位数。在您的情况下,6位数字将是<code>%.6f</code>:</p>
<pre class="lang-php prettyprint-override"><code><?php
// Save the floating-point Unix timestamp just for comparing below.
$microtime = microtime(true);
echo 'echo $microtime : ' . $microtime . "\n";
printf("printf(\"%%.6f\", \$microtime) : %.6f\n", $microtime);
// Some have proposed to create a DateTime instance.
$datetime = DateTime::createFromFormat('U.u', $microtime);
echo "DateTime::format('U.u') : " . $datetime->format('U.u') . "\n";
</code></pre>
<p>这将产生以下结果:</p>
<pre class="lang-text prettyprint-override"><code>echo $microtime : 1632834055.1038
printf("%.6f", $microtime) : 1632834055.103771
DateTime::format('U.u') : 1632834055.103800
</code></pre>
<p>正如你所看到的,这看起来很奇怪,但是PHP的<em>DateTime</em>类在某种程度上降低了过程中的精度。生成的<code>u</code>格式的末尾似乎用零填充</p>
<p><a href="http://sandbox.onlinephpfunctions.com/code/ba036c3223d58932d3dc62fd3438b3bf877b5c76" rel="nofollow noreferrer">Test the PHP code here</a></p>