C语言中long型转换成float型怎么转换,假如数字较大时

2025-04-06 00:28:25
推荐回答(2个)
回答1:

在C语言中,long 型在32位下,长度为4字节,表示范围为-2147483648~2147483647
在64位下为8字节,范围为-9223372036854775808~9223372036854775807
也就是9.2E18
而float 范围是 -3.4E-38 和 3.4E+38
明显,不论哪种long数据转为float的时候都不存在溢出的情况,唯一问题就是精度丢失。
所以 long转为float就是按值转换,通过降低精度的方式,把值赋值给float。

回答2:

直接用(float)a转换,只是精度会有下降,在32位系统中float有1个符号位+8个2的幂次位+23个精度位=32位,long有1个符号位+31个精度位=32位,有效数字会有损失。