Как округлить до двух десятичных знаков PHP - PullRequest
2 голосов
/ 21 марта 2011

Я бы хотел округлить число до двух десятичных знаков в 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?

Ответы [ 3 ]

9 голосов
/ 21 марта 2011
4 голосов
/ 21 марта 2011

Edit3:

Ну, если я правильно понимаю ваш код, он должен выглядеть следующим образом:

<?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 испортиласьгде-то.

Предполагается ли, что вы заполняете необоснованное значение в $ form_values ​​['submit'] [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;
3 голосов
/ 21 марта 2011

PHP round будет принимать число и округлять его с точностью до 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
...