以更具可读性的格式显示双倍的科学记数法

以更具可读性的格式显示双倍的科学记数法

问题描述:

我正在通过第三方库从PLC读取值,但是当保存为双精度值时,该值看起来是以科学计数法表示的。以更具可读性的格式显示双倍的科学记数法

在PLC的值是1.234然而,调试应用程序时,该值被存储在双为5.27326315571927E-315

我的标签显示这一点,但是我想它显示为1.234而是一个作为科学计数法。

我该如何转换?

+3

FYI:'5.27326315571927E-315' ='1.234'。这是'〜0' – 2012-04-08 22:19:18

+1

我想你需要显示代码,但它听起来像你是一个浮动放入一个双向或沿着这些线 – 2012-04-08 22:23:56

作为一个疯狂的猜测,我认为你应该从你的库中读取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