2013-01-23 54 views
0

我有一個像$ amount ='1,120.01'這樣的數字,我需要與一個整數進行比較(例如if($ amount < 300){do this}}。但由於某些原因,php會將這些數字(1,120.01或300.00)有php如何格式化十進制數字?

+4

不能使用逗號(千位分隔符)。 –

+0

我假設你的意思是'$ amount ='1,120.01''(即作爲一個字符串)對不對? – BenM

+0

@BenM沒錯!這是關於一個字符串。 – user1963938

回答

0

較低的值,所以我不知道我應該怎麼格式化。您可以使用此代碼字符串轉換......從以上

https://stackoverflow.com/a/14482490/627868 KSG答案。

<?php 
$string_number = '1,120.01'; 

$number = (str_replace(',','',$string_number)); 

print $number; 

?> 
+0

round「rounds」333,335.00 to 333這是不正確的 – user1963938

+0

所以我覺得它是String ...因爲你在你的問題中提到$ amount ='1,120.01'我是對嗎? – Rush

0

你可以從數量上去掉逗號並進行比較,如 if(((float)str_replace(',','',$amount)) < 300)

0

您可以嘗試

$amount = '1,120.01'; 
$amount = format($amount); 

if ($amount < 300) { 
    echo $amount, " less than 300", PHP_EOL; 
} else { 
    echo $amount, " grater than 300", PHP_EOL; 
} 

輸出

1120.01 grater than 300 

功能用於

function format($number) { 
    $places = strlen(substr(strrchr($number, "."), 1)); 
    $number = filter_var($number, FILTER_SANITIZE_NUMBER_INT); 
    return $number/pow(10, $places); 
}