You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP报错:number_format()期望参数1为float,传入string求解决

问题排查与解决
  • 报错根源:number_format() 要求第一个参数必须是float/int类型,但你传入的$value是字符串,导致类型不匹配触发错误。而且money_format()同样需要数值类型参数,所以不管代码走哪个分支,都得先保证$value是有效数值。

修复后的代码

public static function format_inr($value, $decimals = 0) {
    setlocale(LC_MONETARY, 'en_IN');
    // 先把输入转为有效数值,非数字内容默认设为0
    $numericValue = is_numeric($value) ? (float)$value : 0.0;
    if (function_exists('money_format')) {
        return money_format('%!i.' . $decimals . 'i', round($numericValue));
    } else {
        return number_format($numericValue, $decimals);
    }
}

关键修改点

  • 新增$numericValue变量,先通过is_numeric()判断输入是否为有效数字,是则转为float类型,否则设为0.0,彻底避免类型错误。
  • 原代码中number_format的第二个参数写死为2,改成使用传入的$decimals参数,保持两个分支的格式化逻辑一致。

内容的提问来源于stack exchange,提问作者rahul bonde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 04:04:57