Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 介于%和之间的数字的含义。在printf中(“5.2f”,123456.987654)_C_Printf - Fatal编程技术网

C 介于%和之间的数字的含义。在printf中(“5.2f”,123456.987654)

C 介于%和之间的数字的含义。在printf中(“5.2f”,123456.987654),c,printf,C,Printf,%和之间的数字是什么意思。在printf中?下面的printf都打印相同的数字 #include <stdio.h> int main() { double r = 123456.987654; printf("%1.2f\n", r); // 123456.99 printf("%5.2f\n", r); // 123456.99 return 0; } #包括 int main() { 双r=123456.987654; printf(“

%和之间的数字是什么意思。在
printf
中?下面的
printf
都打印相同的数字

#include <stdio.h>
int main()
{
    double r = 123456.987654;
    printf("%1.2f\n", r);   // 123456.99
    printf("%5.2f\n", r);   // 123456.99
    return 0;
}
#包括
int main()
{
双r=123456.987654;
printf(“%1.2f\n”,r);//123456.99
printf(“%5.2f\n”,r);//123456.99
返回0;
}
格式说明符中
%
和可选
字符之间的数字为:

(可选)指定最小字段宽度的整数值或*。如果需要,结果将用空格字符填充(默认情况下),右对齐时填充在左侧,左对齐时填充在右侧。在使用*的情况下,宽度由int类型的附加参数指定。如果参数值为负值,则结果为指定的-标志和正字段宽度。(注意:这是最小宽度:该值永远不会被截断。)


它指定最小字段宽度。如果要打印的结果的字符数少于最小字段宽度,则会用空格填充。由于生成的字符串
“123456.99”
有9个字符,因此指定小于或等于
9
的字段宽度不会有任何区别。

这是否回答了您的问题。(特别是)你读了吗?试着用一个更大的数字(
20
?)看看区别。我写了printf(“%5f\n”,254.3);产量为254.30万辆。我期望254.3,因为254.3由5个chacarter组成。根据需要,它应该显示5个字符。
我期望254.3
默认精度为6。如果需要一个精度(即逗号后的一个数字),请指定它<因为254.3由5个chacarter组成。
这是一个奇怪的假设。如上所述,该数字指定了最小字段宽度。该值从未被截断。@FedericaGuidotti“我希望是254.3,因为254.3由5个chacarter组成。”-->
double
可以准确地编码大约2^64个不同的值。254.3不是其中之一。相反,使用了一个附近的值,当完全以十进制形式写入时,它更像是“254.300000000000001136…”,用
“%5f”
将其打印为254.300000。