对我来说这是第一次,使用setLocale,我通常讨厌使用它,因为我在共享主机上工作,但是自从最近更换工作以来,我已经获得了服务器控制,因此能够安装语言环境。
当我在我的应用程序上切换到fr_CA时,我打电话给
money_format('%n', $value)
它正确地格式化货币,但奇怪的是,如果我
number_format($value, 2);
我得到一个用正确的小数位(2)格式化的数字,但小数分隔符不是预期的。我得到" 0.32"而不是" 0,32"就像当地人说的那样。
我甚至检查了服务器上的语言环境,它清楚地显示小数点分隔符是逗号:
LC_NUMERIC
decimal_point "<U002C>"
thousands_sep "<U0020>"
grouping 3;3
END LC_NUMERIC
我在网上查了一下,U002C是独立逗号...不是期间......
你对此有何看法?
PS,这是我检查的内容:
由于
答案 0 :(得分:1)
另一种方法是使用localeconv()检索该信息并在number_format()中使用它,例如:
$locale = localeconv();
echo number_format(
$number,
$locale['frac_digits'],
$locale['decimal_point'],
$locale['thousands_sep']
);