0

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

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

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

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

4

2 回答 2

1
$num = '1.000,50';

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

评论后编辑阿克塞尔

你可以更好地使用花车。为什么要使用字符串?对所有数学运算使用真正的浮点数,并在向用户查看时将浮点数转换为希望的格式。

像这样:

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

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

结果是EUR 200,04

更多信息money_format

于 2013-06-02T13:14:29.510 回答
0
$num = str_replace(array('.', ','), array('', '.'), $num);
于 2013-06-02T13:12:30.490 回答