0

所以我有这个小问题。我有一个表格,您可以在其中输入一个数字,它可以是欧式格式,逗号作为小数点 (,),或者美式格式带有小数点 (.)。

知道了这一点,如何将数字格式从欧美格式转换?而美国格式保持不变?

我尝试使用这个公式,但结果是错误的。

$american = '12.5';
$european = '12,5';

$locale = 'it_IT.utf8';
setlocale ('LC_NUMERIC', $locale);
$fmt = new NumberFormatter ($locale, NumberFormatter::DECIMAL);
$american = $ fmt->parse($american);
$european = $ fmt->parse($europen);

response

$american = 125
$european = 12.5

问题出在哪里?

php版本。5.4.10

4

2 回答 2

2

尝试以下代码:

$american = '12.5';
$european = '12,5';

$locale = 'en_US.utf8';
$fmt = new NumberFormatter ($locale, NumberFormatter::DECIMAL);
$american = $fmt->parse($american);

$locale = 'it_IT.utf8';
$fmt = new NumberFormatter ($locale, NumberFormatter::DECIMAL);
$european = $fmt->parse($european);

得到想要的结果?

于 2013-01-10T12:44:13.103 回答
0

改用str_replace()不是更好吗?

于 2013-01-10T12:42:41.973 回答