DWORD转float,该怎么处理

DWORD转float
typedef unsigned long       DWORD;
DWORD d1,d2,d3;
 float f = (float)(d1 - (d2 - d3)) ;
怎样解决(d1 - (d2 - d3))为负值时转化过程中符号位丢失问题 


------解决思路----------------------
引用:
typedef unsigned long       DWORD;
DWORD d1,d2,d3;
 float f = (float)(d1 - (d2 - d3)) ;
怎样解决(d1 - (d2 - d3))为负值时转化过程中符号位丢失问题


使用abs
------解决思路----------------------
 float f = (float)d1 - ((float)d2 - (float)d3) ;