2012-08-15 86 views
0

我不能讓round()函數正常工作。下面是目前我在做什麼:我不能得到我需要從PHP的一輪結果()

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

有了這個代碼,當$num是144,結果是0.99999936。但是,我需要四捨五入到1.爲什麼會發生這種情況,我怎樣才能讓我的行爲像我期望的那樣,而不是這種違反直覺的方式?

+0

[它適用於我](http:// viper-7.com/46EJON)。 – nickb 2012-08-15 20:09:56

+2

當我用$ num = 144試試這個時,我得到'1'爲$ result。那麼你能否告訴我們你的其他變量是什麼($ si,$ sf)? – Sgarz 2012-08-15 20:11:01

+0

$ si $ sf是平方英寸和平方英尺的字符串變量。然而,$ number是來自$ num = $ _POST ['number']的用戶輸入號碼;所以當我輸入144的形式它不輪,它只是乘以0.00694444 – 2012-08-15 20:27:30

回答

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> 
<? 
} 
?> 
4

嘗試:

$formula = round($formula, 0);

+3

第二個參數的默認值應該是零。 – Spudley 2012-08-15 20:06:30

+0

@Spudley你完全正確。我在沒有第二個參數的情況下進行了測試,我仍然以'1'作爲答案。 – Tchoupi 2012-08-15 20:10:11

+0

@Spudley我猜測,但它可能會強制'$ num'到正確的類型。 '$ num'可能起源於一個字符串。 – Sablefoste 2012-08-15 20:10:54

0

指定要小數號碼:

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

nope它仍然給我同樣的答案,而沒有四捨五入0.99999936 – 2012-08-15 20:10:34

+0

這是爲我工作 - http://codepad.org/Ol2SPYdZ - 它可以與你的其他變量有關嗎? – DaveR 2012-08-15 20:15:42

+0

$ number是來自$ num = $ _POST ['number']的用戶輸入號碼;所以當我在表單中鍵入144時,它不會輪到它,它只是將它乘以0.00694444 – 2012-08-15 20:32:42

相關問題