更改十进制浮点字符

时间:2013-06-02 13:09:25

标签: php

我有一个变量$num='1.000,00';,在欧洲是一千个。

我想得到这个数字$num*0.2;的20%,但我得到错误的结果,因为字符串中使用了点而不是逗号。

我尝试了number_format功能,但将我的千位转换为1而不是1000.

在计算百分比后,我希望以欧洲形式返回最终结果。 (200,00)。

2 个答案:

答案 0 :(得分:1)

$num = '1.000,50';

echo floatval(str_replace(array('.', ','), array('', '.'), $num)) * .2;

评论Axel

后编辑

你可以更好地使用浮动。为何使用字符串?对所有数学运算使用实数浮点数,并在向用户查看时将浮点数转换为采样格式。

像这样:

$val = 1000.20;
$new_val = $val * .2;

setlocale(LC_MONETARY, 'nl_NL');
echo money_format('%(#10n', $new_val);

EUR 200,04

中的结果

更多信息money_format

答案 1 :(得分:0)

$num = str_replace(array('.', ','), array('', '.'), $num);