以指数表示法输出double

时间:2015-10-27 09:30:31

标签: c#

我正在将VB6应用程序转换为C#。我的C#代码是:

double a = 0.1345;
double b = 56.0;
double c = 40574.0;
double d = a * (b / c);
Console.WriteLine(d);

根据VB,上面的代码应返回1.856361216542613e-4

但我的应用程序正在返回0.000185636121654261

我需要这个值,因为它有e符号。

1 个答案:

答案 0 :(得分:3)

您只需要使用正确格式的ToString()

Console.WriteLine(d.ToString("e"));

更多格式:MSDN

修改 要增加精度,您需要在e之后指定它:

Console.WriteLine(d.ToString("e16"));
//1.8563612165426135e-004

不幸的是,在exponent 00之前无法摆脱4。这是解释:

  

格式说明符的情况表示是否加上前缀   带有“E”或“e”的指数。 指数总是由加号组成   或减号和至少三位数。指数是填充的   如果需要,用零来满足这个最小值。

来源:MSDN

<强> EDIT2: 为了摆脱指数中的填充,您可以编写以下格式:

 Console.WriteLine(d.ToString("0.##############e+0"));