number_format 返回错误的值?
Posted
技术标签:
【中文标题】number_format 返回错误的值?【英文标题】:number_format return the wrong value? 【发布时间】:2014-03-17 14:20:40 【问题描述】:这是我的代码:
$subTotal = number_format($subTotal, 2);
在 $subTotal 中,我有一个像 1,233.00 这样的值作为字符串。返回值为 1.00,这当然是错误的。所以我尝试了其他方法:
$subTotal = number_format($subTotal, 2, '.', ',');
结果还是一样。如何使用 , 作为千位分隔符?
谢谢!
【问题讨论】:
number_format() 适用于数字数据类型,而不适用于格式化字符串....如果您向 number_format() 提供格式化字符串,那么它将使用普通的 php 转换规则转换为数字(如在文档中定义),这意味着逗号后面的任何内容都将被忽略 【参考方案1】:在调用number_format()
之前去掉逗号
$subTotal = number_format(str_replace(',', '', $subTotal), 2);
【讨论】:
因为 PHP 将该值视为字符串。但是 number_format() 需要一个整数。因此,它将该值转换为整数。但这意味着在它找到的第一个非数字处截断数字,即逗号。以上是关于number_format 返回错误的值?的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP number_format() 得到一个奇怪的除法错误