<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$num = "1 234 567,891";
echo $fmt->parse($num)."'n";
echo $fmt->parse($num, NumberFormatter::TYPE_INT32)."'n";
?>
它只返回第一个字符,即1。预期输出为1234567.89
对我来说,它输出1234567.891
和1234567
,所以它按预期工作。然而,根据PHP手册中的一条注释,这取决于使用的版本。
还有一种猜测是1 234 567,891
在fr_FR
中有效,但在de_DE
中无效。