标签: php integer printf
我很困惑这些数字的含义。对我而言,printf似乎给了我错误的结果。
echo printf("%.2f", 1); // 1.004 echo printf("%.3f", 1); // 1.005 echo printf("%.2f", 1.1234); // 1.124
首先,它似乎打印了太多的小数,我不知道这些数字是什么。有人可以对这件事情有所了解吗?
答案 0 :(得分:4)
简单。 printf()有一个返回值,它是整数。该值是 - 结果字符串的长度。因此,您的代码正在做两件事:
printf()
echo()
这是因为你看到1.004作为第一种情况,例如。它的1.00 4("1.00"字符串的长度为4)
1.004
1.00
4
"1.00"
如果您打算打印格式化的字符串,请按原样使用printf():
printf("%.2f", 1);
或者使用sprintf()和echo:
sprintf()
echo sprintf("%.2f", 1);