[英]Calculate percentage with PHP
如果有一個小問題,我想。
我成功地使用了這個答案的代碼來解決某個問題: 從外部網站獲取DIV內容
它很棒。 我的輸出例如是9,1。 現在我想把這個百分比,所以它應該是91%。
$second_step[0]
給出9,1。
我使用以下代碼使其成為百分比:
$score = $second_step[0] * 10;
...但是輸出90而不是91。
我做錯了什么? 它看起來像一個簡單的代碼,但我不確定為什么它輸出90而不是91。
希望有人可以幫助我。
對不起,我的英語不好 :)
嘗試這個
$val = floatval(str_replace(',', '', $second_step[0]));
可能與數字格式有關。 您的示例顯示9 [逗號] 1,PHP將其視為字符串,並在計算時返回腳本遇到的第一個數字部分(僅為9)。 如果要進行數學運算,則需要將其轉換為數字(讀取9 [期間] 1)。
$score = floatval(str_replace(',', '.', $second_step[0])) * 10;
你得到90因為它認為10是一個int。 因此,您的輸出將轉換為int。
試試這個: $ score = $ second_step [0] * 10.0; PHP將10視為int,但將10.0視為浮點數。 您也可以通過這樣做將10投射到浮點數: $ score = $ second_step [0] * floatval(10);
兩種方法都可行,但第一種方法將是最好的。
您的$second_step
被視為整數,請參閱http://php.net/manual/de/language.types.string.php#language.types.string.conversion,除非您使用setlocale ()明確更改腳本的語言環境。
如果逗號需要留在那里並且你沒有改變語言環境,你可以例如做$temp = str_replace("," , "." , $setlocale[1]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.