【发布时间】:2013-11-02 23:58:07
【问题描述】:
发生了什么:
我将我的 MS Windows 语言环境设置为“Polish_Poland.1250”(使用setlocale(LC_ALL, "polish_poland"))。
然后我使用sprintf('%.2f',5.55),预期输出5,55,但我得到了5.55。
使用 linux 会发生不同的事情。区域设置由setlocale(LC_ALL, 'pl_PL.UTF-8') 设置。
然后 sprintf('%.2f',5.55) 输出 5,55(我在 MS Windows 上期望的值)。
请解释一下这种奇怪的(错误的?)行为。
编辑:这是我的应用设置语言环境的方式
if($os==='windows')
{
putenv('LANG=polish.UTF8');
putenv('LANGUAGE=polish.UTF8');
bind_textdomain_codeset($_SERVER['HTTP_HOST'], 'UTF8');
$debug = setlocale(LC_ALL, Cms_Aplikacja::$config['LC_WINDOWS']);
}
else if($os==='linux')
{
$debug = setlocale(LC_ALL, Cms_Aplikacja::$config['LC_LINUX']);
}
【问题讨论】:
标签: php localization number-formatting