在看北理的C语言程序设计慕课,第一周安排了一个这样的题`#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
float a;
scanf("%f",&a);
printf("%f",a);
return 0;
}`
当把printf函数中的%f改成%3f,并输入12345.12345的时候出现了非常奇怪的现象。
我能理解小数点后出现六位是因为float的数据类型本来就规定小数点位数为6位,数据的实际长度大于我所规定的3所以输出的数据按实际长度来,但是为什么输出的不是12345.123450而是12345.123***呢…不能理解