2013-01-23 28 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); 
}