Temp的值是2147553344 (0x80011040)数据类型是unsigned int型 Temp_float的值是2.14755328e+009数据类型是float型 SysData.ADC_VALUE的值是2147553280 数据类型是double型 现执行如下进程: Temp = 0x80011040; SysData.ADC_VALUE=0; Temp_float = Temp;//到这里值传递后就变了 这是为什么? SysData.ADC_VALUE+=Temp_float; |
没有变奥,只是表示方式不一样,变成了科学计数法,这与浮点数在内存中的存储方式有关,具体我也不太清楚。其实还是 2147553344(虽然有点精度丢失)。