ANSI C:如何将浮点值转换为短变量

时间:2016-08-30 08:47:38

标签: c

抱歉这个简单的问题,但我怎样才能转换为f.e. 29.4进入0x0DBE,-12进入0x8350。

int ss_bat_temp = 294;    //a temperatur in 0.1 Celsius
fvalue = (float) ss_bat_temp / 10; 
short svalue = (short)(fvalue);

但它不起作用。

结果是0x001D而不是0x0DBE。有什么问题?

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

Float是一个8字节长,short是4(我认为)。当从float转换为short时,你会失去那些信息,因为你必须将它缩小。