而不是显示这样格式化的数字:

1,234,567.890,我想显示这样格式化的数字:

1 234 567.890,与此略有不同:
1 234 567.890。

我正在使用 PHP 函数:

number_format($value, 0, ".", " ")

但是,它产生了这个:

1�234�567.890

我已经将 http header 和 html 文档设置为 UTF-8。我相信这个问题的出现是由于薄空间是一个多字节字符。我一直无法找到处理此问题的 mb 字符串函数。

有没有人知道如何处理这个问题?

最佳答案


基于此,这是针对旧 PHP 版本中的问题的一个非常hacky 的修复,缺少滚动您自己的 number_format 实现:

$separator = ' ';
echo preg_replace('/(?<=\d)\x' . bin2hex($separator[0]) . '(?=\d)/',
                  $separator,
                  number_format($value, 0, '.', $separator));

关于php - 如何格式化带有细空格的数字作为千位分隔符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13761490/

10-10 19:00