【问题标题】:Convert Double to string with exponential notation使用指数符号将 Double 转换为字符串
【发布时间】:2016-05-03 09:37:05
【问题描述】:

步骤:1

我在 Sql Server 数据库“-3.507828666035941e-04”中保存了一个值。

步骤:2

从数据库中检索此值后,我将其转换为双精度值,我得到“-0.00035078286660359412”。我正在转换这个值,因为我必须在服务方法中作为参数传递。参数类型为 double

步骤:3

将其转换为字符串后,我得到“-0.000350782866603594”。在服务方法中,他们将其转换为字符串以附加到字符串生成器中

我的问题是:

我应该再次进行什么转换才能取回“-3.507828666035941e-04”值?

我尝试在反向步骤 3,2,1 中转换“-0.000350782866603594” 我没有得到所需的值

【问题讨论】:

  • 如果您想要数据库值,为什么要首先将其转换为双精度值?
  • 试试value.ToString("E", CultureInfo.InvariantCulture);
  • I have a value saved in Sql Server DB "-3.507828666035941e-04". - 你肯定没有?我认为您在 db 表中的字段是 float 类型的,而您只能看到它 displayed 以 E 表示法?
  • 如果我想将“-3.507828666035941e-04”保存到双变量中。我必须转换那个权利
  • 我有一个参数类型为 double 的服务。到那个参数我必须传递“-3.507828666035941e-04”

标签: c#


【解决方案1】:

你可以这样转换

double d = -0.00035078286660359412;
string s = d.ToString("0.000000000000000e00");

【讨论】:

  • 我得到的输出是-3.5078E-004
  • 是否有可能像这样获得全部价值-3.507828666035941e-04
  • 超级。我试图获得整个“-3.507828666035941e-04”值。所以我通过添加尝试了您建议的答案 ToString("0.000000000000000e00")。但我得到了 -3.507828666035940e-04 而我想要 -3.507828666035941e-04
  • 酷我在我的回答中也添加了你的方法,快乐编码:)
  • :) 如何在最后得到 41e 而不是 40e。我的问题清楚了吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多