【问题标题】:php how to format a decimal number?php如何格式化十进制数?
【发布时间】:2013-01-23 14:45:40
【问题描述】:

我有一个像 $amount = '1,120.01' 这样的数字,我需要与一个整数进行比较(例如 if($amount

【问题讨论】:

  • 您不能使用逗号(千位分隔符)。
  • 我假设您的意思是$amount = '1,120.01'(即作为字符串)对吧?
  • @BenM 没错!这是关于一个字符串。
  • 只需用空字符串替换逗号并将结果转换为(浮点数)。

标签: php if-statement compare


【解决方案1】:

您可以从金额中去掉逗号并进行比较 if(((float)str_replace(',','',$amount)) < 300)

【讨论】:

    【解决方案2】:

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

    https://stackoverflow.com/a/14482490/627868Ksg 回答。

    <?php
    $string_number = '1,120.01';
    
    $number = (str_replace(',','',$string_number));
    
    print $number;
    
    ?>
    

    【讨论】:

    • 所以我觉得它是字符串......因为你在你的问题中提到 $amount = '1,120.01' 对吗?
    【解决方案3】:

    你可以试试

    $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);
    }
    

    【讨论】:

      猜你喜欢
      • 2013-08-22
      • 2020-07-21
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多