在某些情况下,PHP会在操作后更改小数点分隔符,这是一个示例:
<?php
echo $amount; //21.960000
echo $this->obj_vat->vat; //10.00
$amount= $amount + ( $amount * ( $this->obj_vat->vat / 100 ) );
echo $amount; //24,156
?>
为什么小数点分隔符更改为&#39;,&#39;?
这是一个多语言网站。在西班牙语版本中,语言环境设置为西班牙语(es_ES),小数点分隔符为&#39;,&#39;。这就是改变的原因。
解决方案是强制LC_NUMERIC为英语:
setlocale( LC_ALL, $locale );
setlocale( LC_NUMERIC, 'en_GB' );
但我不知道这是否是一个合适的解决方案。
答案 0 :(得分:1)
在内部,PHP将amount变量存储为float,因此问题在于显示该值。 试试这个:
<?php
echo $amount; //21.960000
echo $this->obj_vat->vat; //10.00
$amount= $amount + ( $amount * ( $this->obj_vat->vat / 100 ) );
echo number_format($amount, 2, '.', ',');
在此处查看演示:http://sandbox.onlinephpfunctions.com/code/ba34855a2de309c842c7ce678713f4168a852999
答案 1 :(得分:0)
每一个想法都很好。
对于你的信息,你可以这样思考,
<?php
echo $amount; //21.960000
echo $this->obj_vat->vat; //10.00
$amount= $amount + ( $amount * ( $this->obj_vat->vat / 100 ) );
echo (float) $amount; //24.156
?>
答案 2 :(得分:-1)
这是一个本地配置问题,可能是在最近安装了php-intl之后导致的,无意中为您更改了此内容。
编辑您的const found = findFolder(projectFolders, folderId)
文件,并将/etc/default/locale
行更改为
LC_NUMERIC
您可能要在那里更改任何其他设置,然后重新启动。