我正在尝试将浮点数四舍五入到最接近的四分之一,小数点后三位,但我似乎无法在 PHP 中做到这一点。这是我到目前为止得到的:
$longitude = 145.6360003;
echo floor($longitude * 4) / 4;
我找回了145.5
,但我正在寻找的价值是145.625
。我也尝试了 php.net 评论中的这个片段,但仍然没有。
3 位,然后四舍五入到最接近的四分之一,保留小数点后三位?
.
125不是最近的四分之一,而是最接近的八分之一。
你的例子是正确的,如果你想要最近的四分之一,它是145.5
.如果你想要最接近的八分之一,那将是145.625
:
>>> math.floor(lon * 8) / 8
145.625
或在 PHP 中:
$longitude = 145.6360003;
echo floor($longitude * 8) / 8;
您还应该考虑将round($result, 3)
作为最后一步,因为浮点数固有的不准确性。