我在一个客户网站上遇到了一个奇怪的问题:
$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