不能理解数字是如何在C中处理的。任何人都可以指出一个好的教程。处理C中的数字
#include<stdio.h>
main()
{
printf("%f",16.0/3.0);
}
此代码给:5.333333
但
#include<stdio.h>
main()
{
printf("%d",16.0/3.0);
}
给出了一些垃圾值:1431655765
然后
#include<stdio.h>
main()
{
int num;
num=16.0/3.0;
printf("%d",num);
}
给出:5
然后
#include<stdio.h>
main()
{
float num;
num=16/3;
printf("%f",num);
}
给出:5.000000
在''%f“,16.0/3.0'例子中,格式字符串指定了一个**'double' **,并且传递了一个'double'(常量'16.0'是一个'double ',即使你使用像'16.0f/3.0f'这样的'float'常量,结果会在传递给'printf'之前被提升为'double'。 – caf 2011-06-07 05:49:49
@caf你说得对,我的错 – 2011-06-07 05:51:54