2011-11-17 85 views
0

我在解决printf的问题时遇到了问题。有人可以解释,因为这是我得到的结果:请帮忙解释一下PHP printf

$f = 62.444444444444; 
printf('%.2f', $f); // shows 62.4419 

为什么不是62.44?

+4

你确定你在看正确的输出吗?这为我打印62.44 ... – thetaiko

+1

这就是你想要的:'sprintf(“%01.2f”,$ f);' – xbonez

+0

[It works fine](http://ideone.com/snrLZ)。 –

回答

0

因为%.2f表示:插入一个精度为2位的浮点数。

+0

这[链接](http://www.php.net/manual/en/function.printf.php#27561)也解释了一些。 – Galled

+0

-1这不回答OP的问题。 –

0

你是什么php版本?

我得到62.44这个代码

$f = 62.4444444; 
printf('%.2f', $f); // Output 62.44 
0

这似乎是在printf的确实是一个错误,因为我在这种情况下获得62.445。尝试sprintf的替代:

echo sprintf('%.2f', $f); 

[编辑]

不是一个错误毕竟。我的交互式shell执行一些额外的类型转换来输出。或者像你这样的事也发生在你身上,或者像Marc B在评论中所说的,其他的东西是19以后