【问题标题】:Displaying a scientific notation double in a more readable format以更易读的格式显示双精度科学记数法
【发布时间】:2012-04-08 22:12:43
【问题描述】:

我正在通过第三方库从 PLC 读取一个值,但是当保存为双精度值时,该值似乎采用科学计数法。

PLC 中的值是1.234 但是,在调试应用程序时,存储在双精度中的值是5.27326315571927E-315

我将其显示在标签中,但我想将其显示为 1.234 而不是科学记数法。

如何转换?

【问题讨论】:

  • 仅供参考:5.27326315571927E-315 != 1.234 。是~0
  • 我猜你需要显示代码,但听起来你正在将浮点数放入双精度或类似的东西

标签: c# string-formatting scientific-notation


【解决方案1】:

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

【讨论】:

  • 有趣!我将其更改为将值转换为浮点数,现在得到的值为 1.234。他们提供的示例代码状态转换为双精度,我已经在以前的项目中做到了这一点,它运行良好......但这次不是!谢谢!
猜你喜欢
  • 2011-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-08
  • 2017-12-24
  • 1970-01-01
相关资源
最近更新 更多