我正在调试PHP代码并发现以下内容:
$a = 111749392891;
printf('%f', $a);
111749392890.:00000
printf('%F', $a);
111749392890.:00000
printf('%F.2', $a)
111749392890.:00000.2
printf('%F0.2', $a);
111749392890.:000000.2
number_format($a, 2, '.','');
111749392891.00
只有number_format()输出对我来说没问题。我错过了什么吗?我正在使用PHP 5.3。
答案 0 :(得分:10)
您将格式类型修饰符放在格式类型说明符之后而不是之前。试试这个:
printf('%.2F', $a)
对于奇数输出,您的本地化设置可能正在执行此操作。尝试运行下面的行并查看为您的本地返回的内容。
echo setlocale(LC_ALL, null);
尝试将您的语言区域更改为不同的区域,以查看问题是否消失。像这样:
setlocale(LC_ALL, 'en_CA.UTF-8');