2

我想在 PHP 中将一个数字四舍五入到小数点后两位。

PHP代码:

$bmi = ($form_state[values][submitted][1] * 703) / 
    ($form_state[values][submitted][10] * $form_state[values][submitted][10]);
$form_values['submitted'][11] = $bmi;
$form_values['submitted_tree'][11] = $bmi;

舍入变量的最佳方法是什么$bmi

4

3 回答 3

10
round ($your_variable, 2)

http://us2.php.net/manual/en/function.round.php

于 2011-03-20T23:05:30.433 回答
4

编辑3:

好吧,如果我正确理解您的代码,它应该是这样的:

<?php
    //Calculate $bmi
    $bmi = ($form_state[values][submitted][1] * 703) / 
       ($form_state[values][submitted][10] * $form_state[values][submitted][10]);

    //Fill unrounded $bmi var into array for whatever reason
    $form_values['submitted'][11] = $bmi;

    //Fill unrounded $bmi var into array for whatever reason
    $form_values['submitted_tree'][11] = $bmi;

    //$bmi contains for example 24.332423
    $bmi = round($bmi,2);

    //Should output 24.33
    echo $bmi;
?>

如果出现任何问题,我只能假设计算出的 $bmi var 在某处搞砸了。

是否假设您将未取整的值填充到 $form_values['submitted'][11] 中?如果没有,请尝试以下操作:

 $bmi = ($form_state[values][submitted][1] * 703) / ($form_state[values][submitted][10] *  
 $bmi = round($bmi,2); 
 $form_values['submitted'][11] = $bmi;
 $form_values['submitted_tree'][11] = $bmi;
于 2011-03-20T23:06:14.237 回答
3

PHPround将取一个数字并将其四舍五入为 2 个单位精度:

$foo = 105.5555;
echo round($foo, 2);                    //prints 105.56

或者一个字符串并将其四舍五入到 2 个单位的精度:

$bmi = "52.44444";
echo round($bmi, 2);                    //prints 52.44

四舍五入到两个单位的精度,并以这种方式强制最小精度:

$foo = 105.5555;
echo number_format(round($foo, 2), 4, '.', '');  //prints 105.5600
于 2011-03-20T23:05:36.923 回答