PHP printf函数及其';这是一种奇怪的行为

PHP printf函数及其';这是一种奇怪的行为,php,integer,printf,Php,Integer,Printf,我对这些数字的含义感到困惑。在我看来,printf给了我错误的结果 echo printf("%.2f", 1); // 1.004 echo printf("%.3f", 1); // 1.005 echo printf("%.2f", 1.1234); // 1.124 首先,它似乎打印了太多的小数,我不知道这些数字是什么。有人能解释一下这件事吗?很简单。具有返回值,该值为整数。这个值是-结果字符串的长度。因此,您的代码正在做两件事: 首先,使用printf() 其次,echo()结

我对这些数字的含义感到困惑。在我看来,printf给了我错误的结果

echo printf("%.2f", 1);
// 1.004

echo printf("%.3f", 1);
// 1.005

echo printf("%.2f", 1.1234);
// 1.124
首先,它似乎打印了太多的小数,我不知道这些数字是什么。有人能解释一下这件事吗?

很简单。具有返回值,该值为整数。这个值是-结果字符串的长度。因此,您的代码正在做两件事:

  • 首先,使用
    printf()
  • 其次,
    echo()
    结果,即每个字符串的长度
这是因为您可以看到第一种情况下的
1.004
。它是
1.00
4
“1.00”
字符串的长度是
4

如果要打印格式化字符串,请按原样使用
printf()

printf("%.2f", 1);
或与echo一起使用:

echo sprintf("%.2f", 1);