如何在php中四舍五入小数


How to round small decimal numbers in php

我有这个号码:

0.108504578471184

我想把它四舍五入,保持两个小数,我试过使用php函数round()像这样:

round(0.108504578471184, 2)

预期结果:

0.11
实际结果:

0

为什么当我指定要2位小数的时候它给我的是0 ?编辑:正如在评论中所指出的,问题是代码中的其他东西。我选择了一个xml属性

$selectedMpoint->xpath('/RFile/Machine/MPoint[@No="'.$MPNo.'"]/Operation[@FrqRange="'.$MPFrqRange.'"]/QParam[@Qid="1"]/@Value')[0];

回显

echo $selectedMpoint->xpath('/RFile/Machine/MPoint[@No="'.$MPNo.'"]/Operation[@FrqRange="'.$MPFrqRange.'"]/QParam[@Qid="1"]/@Value')[0];

给我这个号码(和前面提到的一样)

0.1085045784711840

但是当我尝试对它使用round()时它只会给我0,我试着把它放入一个变量中因为我认为它可能会像最后的[0], 2一样把它弄乱,但我仍然得到0e

round($selectedMpoint->xpath('/RFile/Machine/MPoint[@No="'.$MPNo.'"]/Operation[@FrqRange="'.$MPFrqRange.'"]/QParam[@Qid="1"]/@Value')[0], 2

虽然round(0.108504578471184, 2)为我产生0.11,但您可以尝试使用number_format:

(float) number_format(0.108504578471184, 2);