float a=123.456;printf(%6.4f\n,a)为什么答案是123.4560?

所占位置不是应该只有6个数位么。。。

你定义输出的格式为小数点后面四位数,如果数据的小数点不够四位,则补零,如果多于4位,则截取前面四位;整数部分至少显示六位,多于的全部打印,不足六位在数据前面补空格,因此你看到的这数据是123.4560追问

该格式不是表明输出数据占6列么,小数位占其中4位么,这样明显超出了啊。。。

追答

你定义的输出类型是小数部分占据4位,整数部分占据6位,因此,至少是10列

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-31
如果数据的实际宽度超过你设置的最小宽度,则按实际的输出,小于的话,补空格。本回答被提问者采纳

float a=123.456;printf(%6.4f\\n,a)为什么答案是123.4560?
你定义输出的格式为小数点后面四位数,如果数据的小数点不够四位,则补零,如果多于4位,则截取前面四位;整数部分至少显示六位,多于的全部打印,不足六位在数据前面补空格,因此你看到的这数据是123.4560

c语言中printf("%6.4f\\t",123.456)输出什么?为什么?
123.456整数位超过,按实际位数所以输出 123.4560 printf("%9.4f\\t",123.456);的时候输出 1个空格+123.456

C语言,float有效位为7位的问题。
float 有效数字位数是7位,不叫有效位, 不包含 小数点,也不包含 领头的0。例如: 1.234067, 0.1234067, 1234067.00, 0.001234067 -- 其中 1234067 是有效数字。也就是用科学记数法时,不考虑指数。7.2f , 7---总的长度(应当叫 场宽) ,含小数点,含正负号。

C语言输出
e 科学计数法,123.456=1.23456*(10^2) 这就是002的来历。———f是显示6位小数啊。12f,这表明一共要12位,所以在前面补齐了。002的问题,这个就是格式。。我也说不清楚了。

相似回答