用两个整数除法会返回逗号错误的值


Division with two integers returns value with wrong comma

我在一个客户网站上遇到了一个奇怪的问题:

$val1/$val2 = 0,123

注意0,123中的,为逗号,此处应为点.

这是我不知道的服务器设置吗?

$val肯定是整数,但以防万一——这也不起作用:

intval($val1)/intval($val2) = 0,123

PHP版本是Apache/2.2.22 (Debian) 上的5.4.43-1~dotdeb+7.1

您的区域设置显然是用逗号表示小数的。

显示当前区域设置:

var_dump(setlocale(LC_ALL, 0));

显示当前数字格式信息:

var_dump(localeconv());

为了避免对代码的其他本地化部分进行意外更改,我建议只将LC_NUMERIC更改为所需的区域。例如:

setlocale(LC_NUMERIC, 'en_US');

文件:http://php.net/manual/en/function.setlocale.php