2014-09-25 384 views
1

如果有一個小問題,我想。用PHP計算百分比

我成功地使用的代碼從這個答案在一定的問題:Get DIV content from external Website

它的偉大工程。我有的輸出是例如9,1。 現在我想把它作爲一個百分比,所以它應該是91%。

$second_step[0]給出9,1。

我用下面的代碼,使其成爲百分比:

$score = $second_step[0] * 10;

...但這輸出90,而不是91

我做錯了什麼?它看起來像一個簡單的代碼,但我不知道爲什麼它輸出90而不是91.

希望有人可以幫助我這個。

對不起,我的英文不好:)

回答

1

可能與數字格式有關。你的例子顯示9 [逗號] 1,哪個PHP會看到字符串,並在計算時返回腳本遇到的第一個數字部分(僅9)。如果你想做數學運算,你需要把它轉換成一個數字(讀數9 [期間] 1)。

$score = floatval(str_replace(',', '.', $second_step[0])) * 10; 
+0

謝謝你的快速反應!你能告訴我如何將它轉換爲數字嗎?我不知道我該如何處理這個問題。 – edow 2014-09-25 07:29:39

+0

查看答案中添加的代碼行。 – Paul 2014-09-25 07:31:58

+0

謝謝,它看起來很棒! – edow 2014-09-25 07:36:16

0

您得到90是因爲它將10看作int。 所以你的輸出將被轉換爲int。

試試這個: $ score = $ second_step [0] * 10.0; PHP將10看作一個int,但將10.0看作一個浮點數。 你也可以像這樣做10浮動: $ score = $ second_step [0] * floatval(10);

兩種方法都可以,但第一種方法是最好的。

+0

對不起,這兩個答案都不適合我。他們仍然輸出90。 – edow 2014-09-25 07:35:24

2

試試這個

$val = floatval(str_replace(',', '', $second_step[0]));