uns*_*ska 4 php printf integer
我很困惑这些数字的含义。对我来说, printf 似乎给了我错误的结果。
echo printf("%.2f", 1);
// 1.004
echo printf("%.3f", 1);
// 1.005
echo printf("%.2f", 1.1234);
// 1.124
Run Code Online (Sandbox Code Playgroud)
首先,它似乎打印了太多小数,我不知道这些数字是什么。有人可以解释一下这个问题吗?
简单的。printf()有一个返回值,该值是整数。该值是 - 结果字符串的长度。因此,您的代码正在做两件事:
printf()echo()结果,即每个字符串的长度。1.004例如,这是因为您会看到第一种情况。它是1.00(4并且"1.00"字符串的长度是4)
如果您的目的是打印格式化字符串,请按printf()原样使用:
printf("%.2f", 1);
Run Code Online (Sandbox Code Playgroud)
或者与 echo 一起使用sprintf():
echo sprintf("%.2f", 1);
Run Code Online (Sandbox Code Playgroud)