|
5鱼币
今天看鱼哥视频有这样一个例子:
void main()
{
char c='k';
int i=1, j=2, k=3;
float x=3e+5, y=0.85;
printf("%d", x);
printf("%d,%d\n", 'a'+5<c, -i-2*j >= k+1);
printf("%d,%d\n", 1 <j <5, x-5.25 <= x+y);
printf("%d,%d\n", i+j+k ==-2*k, k == j == i+5);
}
为什么 printf("%d", x); 输出结果是 0,而 printf("%f", x); 输出结果是 300000.000000
是不是我前面有什么重要知识忽略了???
系统为window7,编译器为vc6.0绿色版
|
最佳答案
查看完整内容
参考下这篇文档:http://www.cnblogs.com/zhaoyl/archive/2012/04/21/2462409.html {:1_1:}看完后,你可以试试看:
float x = 3e+5;
printf("%d\n", x);
printf("%d\n", (int)x); //(int)x表示把x强制为整数型,后面的小数的精度会丢失!比如float是294.104 输出就是294.000;
|