我有一台装有 Debian Jessie 和 PHP 5.6.9 的机器,还有一台装有 Debian Wheezy 的机器,使用相同的 PHP 版本(但来自 dotdeb.org)。
以下代码在两台机器上给出了不同的结果:
$value = '900,00';
$cur = 'EUR';
$formatter = new \NumberFormatter('nl_NL', \NumberFormatter::TYPE_CURRENCY);
$formatter->setPattern('#,##0.00;#,##0.00-');
$res = $formatter->parseCurrency($value, $cur);
var_dump($res);
var_dump($formatter->getErrorMessage());
Debian Weezy 的输出:
float(900) string(12) "U_ZERO_ERROR"
Debian Jessie 的输出:
bool(false) string(36) "Number parsing failed: U_PARSE_ERROR"
两台机器都安装了 php5-intl。两台机器都安装了 libicu(wheezy 上的 libicu48 和 Jessie 上的 libicu52)。两台机器都有相同的可用语言环境:
$ locale -a
C
C.UTF-8
en_US.utf8
POSIX
另外,我无法在 3v4l.org 上复制它。我在所有 PHP 版本上都收到一个解析错误:http: //3v4l.org/XgsBu
这里有什么问题?为什么结果不一致?