如何从字符数组转换双精度

本文关键字:转换 双精度 数组 字符 | 更新日期: 2023-09-27 18:14:38

我从串行端口移动3个字符,每3个字符是我为端口分割的double,所以现在我需要把它放回一起。

(发送前值= 0x3F3400或0.703125)

char[0] = 0x3F  (msb)
char[1] = 0x34
char[2] = 0x00  (lsb)
double total = (char[0] << 16)+(char[1] << 8)+(char[2]); // this part did not work

请建议如何重建这个,我不太了解双精度,我甚至不能告诉双精度的哪个部分是小数点或-号谢谢!

如何从字符数组转换双精度

我不能得到你的值,但作为帮助可以建议你使用BitConverter和字节数组,像这样:

var v = new byte[8];
v[7] = 0x3F;
v[6] = 0x34;
v[5] = 0x00;
double total = BitConverter.ToDouble(v, 0);
Console.WriteLine(total.ToString("0.0000000000000"));