g********e 发帖数: 131 | 1 #include
int main(int argc, char* argv[])
{
int i, j, *p;
i = 25;
j = 100;
p = &i;
printf("%f\n", i/(*p));
printf("%f\n", (float)i/(*p));
return 0;
}
为什么第一个输出是0.000000?不是1.000000? | d***a 发帖数: 13752 | 2 整型值1的binary是00...0001,这个值用浮点格式来解释,是一个很小的数,打
印出来就变成了0。
如果用%e打印,可以看到是个非零值。
printf("%e\n", i/(*p)); | g********e 发帖数: 131 | 3 果然,谢谢啦
【在 d***a 的大作中提到】 : 整型值1的binary是00...0001,这个值用浮点格式来解释,是一个很小的数,打 : 印出来就变成了0。 : 如果用%e打印,可以看到是个非零值。 : printf("%e\n", i/(*p));
|
|