我正在通过第三方库从PLC读取值,但是当保存为double时,该值似乎是科学记数法。
PLC中的值为1.234
但是,在调试应用程序时,存储在double中的值为5.27326315571927E-315
我在标签中显示这个,但是我希望将其显示为1.234
而不是科学记数法。
我该怎么转换呢?
答案 0 :(得分:2)
作为一个疯狂的猜测,我认为您应该从库中读取4个字节(浮点数)而不是双倍(8个字节)。
由于5.27326315571927E-315
几乎为零。
double d = 5.27326315571927E-315;
byte[] b = BitConverter.GetBytes(d);
float f = BitConverter.ToSingle(new byte[] { b[0], b[1], b[2], b[3] }, 0);
f现在是1.2345