#include<stdio.h>
int main(){
float x=1.084202172485504E-19;
printf("%f %x",x,x);
return 0;
}
请问为什么结果会是那样呢?
#include<stdio.h>
int main(){
float x=1.084202172485504E-19;
printf("%f %x",x,x);
return 0;
}
请问为什么结果会是那样呢?
X是当做整型处理了。
具体的浮点数存储格式是IEEE754。
补充
%f是把单精度浮点数以十进制小数方式输出。默认保留6位小数,所以显示不出来。可以指定格式%m.nf,输出总宽度m,小数n位的浮点数。
还有%e是始终以指数方式输出,%g自动选择小数还是指数方式方式。
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答799 阅读✓ 已解决
1 回答3.3k 阅读
%x是输出无符号整数用的,不配套使用的话可能会出问题,浮点数这么输出的话就不知道会发生什么了。。。