以更易读的格式显示双精度科学记数法
Posted
技术标签:
【中文标题】以更易读的格式显示双精度科学记数法【英文标题】: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
我猜你需要显示代码,但听起来你正在将浮点数放入双精度或类似的东西
【参考方案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。他们提供的示例代码状态转换为双精度,我已经在以前的项目中做到了这一点,它运行良好......但这次不是!谢谢!以上是关于以更易读的格式显示双精度科学记数法的主要内容,如果未能解决你的问题,请参考以下文章