我试图将浮点数舍入到最近的四分之一,有三位小数,但我似乎无法在PHP中执行此操作。这是我到目前为止所得到的:
$longitude = 145.6360003;
echo floor($longitude * 4) / 4;
我回复了145.5
,但我正在寻找的值是145.625
。我也尝试了this snippet from the php.net comments,但仍然没有。
如何将一个数字修剪为3位小数,然后舍入到最接近的四分之一,保留三位小数?
答案 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)
作为最后一步,因为浮点数固有的不准确性。