关于 printf() 的方式和内容的说明;是?
clarification about how and what printf(); is?
这个问题与c编程有关。
/* program starts here.*/
main()
{
float n=792.099976;
printf("%f",n); /*output:-792.099976*/
printf("%5.2f",n); /*output:-792.10*/
printf("%6.2f",n); /*output:-792.10*/
printf("%6.1f",n); /*output:- 792.1*/
printf("%7.1f",n); /*output:- 792.1*/
printf("%3.1f",n); /*output:-792.1*/
}
/Program Ends here/
为什么会出现这种变化?
根据我看的书,("%5.2f",n)
表示5位小数点后2位。
但是当我将 '5.2' 替换为 '6.2' 时,为什么我得到相同的答案?
但是当我用 '6.1' 替换 '5.2' 时,为什么我在它前面得到 space?
但是当我将 '5.2' 替换为 '7.1' 时,为什么前面有两个 space?
但是当我将“5.2”替换为“3.1”时,为什么我得到的答案与“5.2”相同?
https://drive.google.com/file/d/0Bxb7Vv5kgAB5VF9PN2hkaVdOY3c/view?usp=sharing
Link 在这里,我无法上传图片,因为它说我至少需要 10 个声望。
查看 printf 手册页了解所有详细信息,但基本上,您误解了格式说明符中第一个数字的作用。第一个数字是 最小值 字段宽度(以字符为单位)。如果正在打印的数字少于此字符数(不是数字,所以小数点和符号计数!),它将用 space 填充以填充这么多字符。
因此,当您使用“5.2”或“6.2”时,数字使用 6 个字符,因此不会进行填充。对于“7.2”,添加了一个 space 填充字符。对于'6.1'或'7.1',数字是5个字符,因此添加一两个space填充。
这个问题与c编程有关。
/* program starts here.*/
main()
{
float n=792.099976;
printf("%f",n); /*output:-792.099976*/
printf("%5.2f",n); /*output:-792.10*/
printf("%6.2f",n); /*output:-792.10*/
printf("%6.1f",n); /*output:- 792.1*/
printf("%7.1f",n); /*output:- 792.1*/
printf("%3.1f",n); /*output:-792.1*/
}
/Program Ends here/
为什么会出现这种变化?
根据我看的书,("%5.2f",n)
表示5位小数点后2位。
但是当我将 '5.2' 替换为 '6.2' 时,为什么我得到相同的答案?
但是当我用 '6.1' 替换 '5.2' 时,为什么我在它前面得到 space?
但是当我将 '5.2' 替换为 '7.1' 时,为什么前面有两个 space?
但是当我将“5.2”替换为“3.1”时,为什么我得到的答案与“5.2”相同?
https://drive.google.com/file/d/0Bxb7Vv5kgAB5VF9PN2hkaVdOY3c/view?usp=sharing
Link 在这里,我无法上传图片,因为它说我至少需要 10 个声望。
查看 printf 手册页了解所有详细信息,但基本上,您误解了格式说明符中第一个数字的作用。第一个数字是 最小值 字段宽度(以字符为单位)。如果正在打印的数字少于此字符数(不是数字,所以小数点和符号计数!),它将用 space 填充以填充这么多字符。
因此,当您使用“5.2”或“6.2”时,数字使用 6 个字符,因此不会进行填充。对于“7.2”,添加了一个 space 填充字符。对于'6.1'或'7.1',数字是5个字符,因此添加一两个space填充。