【发布时间】:2023-03-06 20:45:01
【问题描述】:
我在一个 mysql 表中有两种类型的数字(FLOAT 和 BIGINT)。
A:0.002
乙:51443234
我需要替换“。”在数字中带有“,”,我可以通过 number_format 来完成
foreach ($row as $key => $val) {
if (is_numeric($val)) {
$row[$key] = number_format($val,'3', ',', '.'); }
}
}
新格式是:
答:0,002
B:51.443.234,000
但我不希望数字 B 中的尾随零,所以我尝试分别格式化 FLOAT 和 BIGINT 值:
foreach ($row as $key => $val) {
if (is_numeric($val)) {
if (is_float($val)) {
$row[$key] = number_format($val,'3', ',', '.'); }
else {
$row[$key] = number_format($val,'0', ',', '.'); }
}
}
但这不起作用。
我不确定问题出在哪里,是否可以在不将值转换为字符串的情况下做到这一点。
(我也不知道转换成字符串有什么缺点..)
您能展示一下正确的方法吗? 谢谢。
【问题讨论】:
标签: php arrays number-formatting