第1个回答 2021-10-27
你好
这个是跟计算机体系结构有关的:
C语言中,printf函数不会进行任何类型转换,只是按照你给的格式从内存读取值。
在计算机中,printf函数去访问读取内存数据时,访问读取浮点数和访问读取整数的寄存器是不一样的。
你给的格式是去访问读取浮点数进行打印,却给了整形变量,所以无法访问读取到变量的值。
如果你将变量b强制转换为浮点型变量,输出是会没问题的。
这是我之前听大神说的,具体的细节我也不清楚,给你作个参考。
百度上应该有很多这个资料,你可以查证一下。
第2个回答 2021-10-27
没有报错吗?这是显式转换和隐式转换和问题,不知道你强制转换能不能转换成功,一般写代码的时候都不用强制转换,容易出问题
第3个回答 2021-12-03
到a的时候就转为整型了,148.8直接转为148然后转型为float是148.0最后结果可能就是这个
第4个回答 2021-10-27
因为int类型的a 不能等于24.4
追问将a强制转换也不行吗?
追答那你得先转换