有时候需要将两个整数相除,获得带小数点的float类型数。例如一个整数12345,需要变成123.45。常见与串口与硬件通讯,DSP处理浮点型比较麻烦,DSP传递来的温度等数据都以整型的方式传递,串口控件接收到数据后,需要将温度值变成实际的值,就可能采用这种方式了。
例如:
int itemp=3706; //实际值37.06℃
int iNum=100;
float ftemp = itemp/ iNum;
那么结果就是37;而需要得到带小数点的结果,有以下几种方法:
1.double dtemp = Convert.ToDouble(Convert.ToDouble(itemp) / Convert.ToDouble(iNum));
(这种方法比较麻烦)
2.float ftemp = (float)itemp/ iNum;
3.float ftemp = itemp* 1.0f / iNum;
后两种方法就比较好了。
最后,ftemp =37.06
或者实现求读取数据最接近的数值
val[i]=Mathf.RoundToInt(float.Parse(str[i]));