PHP:将数字四舍五入为 16 位十进制数字

sa.*_*.ge 3 php floating-point decimal-point rounding

嗨,我正在尝试将一个数字四舍五入为16 位十进制数字,但它只显示并且不会四舍五入到14 位十进制数字

这是我的尝试:

<?php

$num= 0.16346153846153846;

$round = number_format((float)$num, 17, '.', '');

echo $round * -1;
?>
Run Code Online (Sandbox Code Playgroud)

输出:

-0.16346153846154

预期产出:

0.1634615384615385

我知道浮点数只有 14 位十进制数字。16位十进制数字还有其他方法吗?

小智 5

您可以在运行时设置此参数。16 位通常是大多数平台上的最大值,较大的值仅给出无意义或“虚构”的数字:

ini_set("precision", "16");
Run Code Online (Sandbox Code Playgroud)

请参阅更改精度级别浮点变量