错误的转换方法
ultemp1=MK_DWORD(pin->iSDO_PMPower_LowWord,pin->iSDO_PMPower_HighWord);
ftemp=(FLOAT32)ultemp1;
ultemp2=(UINT32)ftemp;
pout->iSDO_9216_PMPower=ultemp2;/*123.45kW--> 123kW*/
pPMshow->PMPower_W=ftemp*1000;
正确的转换方法:使用共用体,共用内存的方式
typedef
union
{
UINT32 ulData;
FLOAT32 fData;
}FLOAT_UINT32_MEM_UNION;
FLOAT_UINT32_MEM_UNION temp_fin32;
temp_fin32.ulData=MK_DWORD(pin->iSDO_PMPower_LowWord,pin->iSDO_PMPower_HighWord);
pout->iSDO_9216_PMPower=temp_fin32.fData;/*123.45kW--> 123kW*/
pPMshow->PMPower_W=temp_fin32.fData*1000;
参考文章
小议大小端模式对C语言的共用体结构的影响
http://blog.csdn.net/ce123/article/details/7097026
浮点型数据存储方式分析
http://blog.chinaunix.net/uid-20937170-id-3396073.html
阅读(1128) | 评论(0) | 转发(0) |