楼层数到最近的四分之一,到三位小数?

时间:2016-04-24 12:23:41

标签: php math

我试图将浮点数舍入到最近的四分之一,有三位小数,但我似乎无法在PHP中执行此操作。这是我到目前为止所得到的:

$longitude = 145.6360003;
echo floor($longitude * 4) / 4;

我回复了145.5,但我正在寻找的值是145.625。我也尝试了this snippet from the php.net comments,但仍然没有。

如何将一个数字修剪为3位小数,然后舍入到最接近的四分之一,保留三位小数?

1 个答案:

答案 0 :(得分:1)

.125不是最接近的四分之一,它是最接近的八分之一。

你的例子是正确的,如果你想要最近的四分之一,那就是145.5。如果你想要最近的第八个,那就是145.625

>>> math.floor(lon * 8) / 8
145.625

或在PHP中:

$longitude = 145.6360003;
echo floor($longitude * 8) / 8;

您还应考虑将round($result, 3)作为最后一步,因为浮点数固有的不准确性。