楼层号到最接近的四分之一,到小数点后三位


Floor number to nearest quarter, to three decimal places?

我正在尝试将浮点数四舍五入到最接近的四分之一,小数点后三位,但我似乎无法在 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)作为最后一步,因为浮点数固有的不准确性。