c语言共用体,我打问号的那句。为什么把97用浮点形式输出变成0.000000而不是97.00000

c语言共用体,我打问号的那句。为什么把97用浮点形式输出变成0.000000而不是97.00000我们不是学过int变为float就像5变为5.0。那么97为啥不变成97.0?而是0.000000。而且我用%d输出a.f也是0.0000000,究竟怎么回事

1.float默认就是6位小数
2.小数在内存是以指数形式存储的,讲整形97化成浮点型读取读取首位,为0
3,除了整数和字符型输出可以相互转化,其他的转化会发生未知的数追问

那我们平时如果将int数像5输出不是变为5.0

追答

给你举个例子

追问

请问下是不是强制转换才是int变为float就是5变为5.0反之则舍去小数部分

然后输出与输入就不一样

int a=5,用%f或者对float用%d输出都是不确定的对吗

追答

是这样,int用float,double输出会有很复杂的位运算,结果是确定值,但是这个值毫无意义
定义的浮点型,输出用浮点型,出来的还是6位小数
如果你想输出一位小数需要控制一下
这样输出

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-26
因为在内存中整型和浮点型的存储方式不一样。如果想具体指导浮点数的存储格式请参阅我的一个文档:https://wenku.baidu.com/view/90fad770376baf1ffc4fad7b
第2个回答  2019-03-12

网页链接这里有答案,但我也看不懂…共用体要不凉了得了

相似回答