2013-05-15 93 views
1

我有一些PHP代碼將兩個數字從mySQL數據庫中分離出來,但它的計算不正確。當我分別回顯$ comm和$total_fix時,數字是正確的。但是,當我回應兩者的劃分時,它不是正確的答案。這兩個數字都是數據庫中的DECIMAL(10,0)數據類型。下面是PHP代碼PHP沒有正確劃分

$percent_comm = $comm/$total_fix; 
$percent_comm = number_format($percent_comm, 2, '.', ',');      
echo "<td align=\"center\">".$percent_comm."</td>"; 

這裏$comm = 2700$total_fix = 75$percent_comm被計算爲0.03當它應該是36

+1

如果你沒有使用'number_format()'格式化數字,怎麼辦? – Xaltar

+1

你的代碼沒有問題。輸入值可能是錯誤的。見http://codepad.viper-7.com/vPs8wn – Ranty

+0

如果你想要百分之百的東西,你應該乘以100. – Voitcus

回答

1

從我在您的評論中看到的情況來看,由於格式的原因,您將$ comm變量作爲帶逗號的字符串獲取。我建議將格式化的字符串轉換爲有效的數字。

平均值,而我會建議更換此:

$comm = '2,700'; 
$comm = str_replace(',','',$comm); 

,從你的電話號碼刪除逗號。

+0

謝謝。這是瞭解未來的一個很好的解決方案。 – Stevenyc091

+0

不客氣@Steve。我一直在尋找另一種方式來做到這一點。但是,顯然這是最乾淨的一個。此外,如果這爲你工作,不要忘記標記這個答案。 –

0

從變量名,你想知道$comm$total_fix百分比。您的代碼差不多是否這樣做:正確劃分$comm/$total_fix,它正確地給你0.027。但是,你得到了它向後當你手工檢查:36分2700/75(即$total_fix/$comm

但要獲得一個百分比,乘以100師的結果的結果:

(75.0/2700) * 100 = 2.7 percent. 

這是你的代碼應該得到什麼。