Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php如何格式化十进制数?_Php_If Statement_Compare - Fatal编程技术网

php如何格式化十进制数?

php如何格式化十进制数?,php,if-statement,compare,Php,If Statement,Compare,我有一个像$amount='1120.01'这样的数字,我需要与一个整数进行比较(例如,if($amount

我有一个像$amount='1120.01'这样的数字,我需要与一个整数进行比较(例如,if($amount<300){do this}})。但是由于某些原因,php认为这样的数字(1120.01或300.00)的值较低,所以我想知道应该如何格式化它。

您可以使用此代码转换字符串…如上所述

Ksg回答

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

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

print $number;

?>

您可以从金额中去掉逗号并进行类似的比较
如果(((float)str_replace(“,”,“,$amount))<300)
您可以尝试

$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;
}
使用的功能

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

你不能使用逗号(数千个分隔符)。我想你的意思是
$amount='1120.01'
(即作为字符串)对吗?@BenM没错!它是关于字符串的。只要用空字符串替换逗号,并将结果转换为(float)。所以我觉得它是字符串…因为你在问题中提到了$amount='1120.01',对吗?
function format($number) {
    $places = strlen(substr(strrchr($number, "."), 1));
    $number = filter_var($number, FILTER_SANITIZE_NUMBER_INT);
    return $number / pow(10, $places);
}