2

PHP で数値を小数点以下 2 桁に丸めたいと考えています。

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

2 単位の精度に丸め、この方法で最小精度を強制します。

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