我不能从PHP的圆形()得到我需要的结果

时间:2012-08-15 20:03:23

标签: php floating-point rounding

我无法使round()功能正常工作。这就是我目前正在做的事情:

if ($con2 == "sf") {
    $formula = $num * 0.00694444;
    $formula = round($formula);
    $result = $num . $si . "<br>RESULT: " . $formula . $sf;
};

使用此代码,当$num为144时,结果为0.99999936。但是,我需要将其四舍五入为1.为什么会发生这种情况?如何使round()以我期望的方式行事,而不是采用这种反直觉的方式呢?

3 个答案:

答案 0 :(得分:4)

尝试:

$formula = round($formula, 0);

答案 1 :(得分:0)

指定所需的小数位数:

$formula = $num * 0.00694444;
$formula = round($formula,0);
echo $formula;

答案 2 :(得分:0)

好的 - 所以你可以尝试这个脚本,看看会发生什么,当你输入144时,这是你正在寻找的行为:

<?
if($_POST){
    $num=$_POST["number"];
    $formula = $num * 0.00694444;
    $formula = round($formula);
    echo $formula;
} else {
?>
<form action="test.php" method="post">
<input type="text" name="number" />
<input type="submit" />
</form>
<?
}
?>