错误的转换方法
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
09-14 07:08