以更具可读性的格式显示双倍的科学记数法
问题描述:
我正在通过第三方库从PLC读取值,但是当保存为双精度值时,该值看起来是以科学计数法表示的。以更具可读性的格式显示双倍的科学记数法
在PLC的值是1.234
然而,调试应用程序时,该值被存储在双为5.27326315571927E-315
我的标签显示这一点,但是我想它显示为1.234
而是一个作为科学计数法。
我该如何转换?
答
作为一个疯狂的猜测,我认为你应该从你的库中读取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
现在
+0
有趣!我改变它将该值转换为浮点数,现在我得到值1.234。他们提供的示例代码表示要转换为double,并且我已经在之前的项目上完成了这项工作,并且它工作正常......但这次不行!谢谢! – 2012-04-08 22:34:06
FYI:'5.27326315571927E-315' ='1.234'。这是'〜0' – 2012-04-08 22:19:18
我想你需要显示代码,但它听起来像你是一个浮动放入一个双向或沿着这些线 – 2012-04-08 22:23:56