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格式化并输出字符串 其次,回

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

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

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

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

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

首先,使用printf格式化并输出字符串 其次,回显结果,即每个字符串的长度。 这是因为您可以看到第一种情况下的1.004,例如。1.00带4,1.00字符串的长度为4

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

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

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