日期:2014-05-17  浏览次数:20696 次

关于类型转换的问题。有点急。在线等。谢谢
一个接收报文并解析的接口程序。
中间有个要解析其中数据。代码如下:
double DData = BitConverter.ToInt16(buffer, 15 + (num6 * 6));

num6是相当于for循环里面的i。
现在问题是,对方传过来的值是存在小数的。而我这直接转换成了整型,把后面的精度都弄丢了。
对方又需要这个精度,我应该怎么改这个东西,使他可以保留精度。
如果换成tosingle或者todouble的话,数据是不正确的。
查msdn说是因为toint16是后面2个字节,而tosingle是4个,todouble是8个。
请各位大大帮忙解答一下,有点急。谢谢

------解决方案--------------------
人家是小数,你转成int,当然不对了,Convert.ToDouble,如果不正确,要么就是你取得字节数不对,要么就是人家不是这样存储的
------解决方案--------------------
我觉得问题在于你不了解对方发送数据的格式。
比如发送一个小数10.234,它在数据中占几个字节,如何存放的?