2011-03-20 213 views
2

我想在PHP中將數字四捨五入到小數點後兩位。如何四捨五入到小數點後兩位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的最佳方式?

+0

沒錯,只需鍵入「圓圓」到php.net搜索框爲您提供了這樣的主題 – 2011-03-20 23:09:18

+0

感謝格雷格立竿見影的效果,我也事先儘管試試這個,它沒有工作... – jeremy 2011-03-20 23:09:52

+0

如果你將一個數字傳遞給函數'round',那麼它就會工作。它爲你帶來什麼回報?也許你的問題不在於使用round。 – Abs 2011-03-20 23:15:25

回答

4

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 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; 
+0

感謝亞歷克斯,已經嘗試過這一點,沒有喜悅... – jeremy 2011-03-20 23:12:27

+0

你可以舉一個例子,在你嘗試四捨五入之前,在$ bmi中存儲什麼樣的變量(變量的值)? – 2011-03-20 23:14:15

+1

@jeremy像「它沒有工作」的短語真的不幫助任何人。爲了充分利用這個網站(以及生活中的其他許多東西),請提供輸入和輸出(實際和預期)。我保證,如果你儘可能簡單地理解你的問題,你將在5分鐘內得到答案。 – 2011-03-20 23:16:33

3

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 
+0

非常感謝Abs,它有一些小問題,但我確定我會找到正確的代碼。 – jeremy 2011-03-20 23:29:06

相關問題