沃梦达 / 编程问答 / php问题 / 正文

如何将带有细小空格的数字格式化为千分隔符?

How to format numbers with thin space as a thousand separator?(如何将带有细小空格的数字格式化为千分隔符?)

本文介绍了如何将带有细小空格的数字格式化为千分隔符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

不显示格式为以下格式的数字:

1,234,567.890,我希望显示格式如下的数字:

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

我使用的是PHP函数:

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

但是,它会产生以下结果:

1�234�567.890

我已经将http头和html文档设置为UTF-8。我认为这个问题的出现是因为空间很小,是一个多字节字符。我找不到处理此问题的MB字符串函数。

有谁知道如何处理这个问题吗?

推荐答案

5.4.0该函数现在支持DEC_POINT和千_SEP中的多个字节。在旧版本中,仅使用每个分隔符的第一个字节。

http://php.net/number_format

基于此,以下是对旧版PHP中该问题的一个非常老套的修复,不包括滚动您自己的number_format实现:

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

这篇关于如何将带有细小空格的数字格式化为千分隔符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何将带有细小空格的数字格式化为千分隔符?

基础教程推荐