输出双精度指数符号

本文关键字:符号 指数 双精度 输出 | 更新日期: 2023-09-27 18:19:20

我正在将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符号。

输出双精度指数符号

您只需要使用ToString()适当的格式:

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

更多格式:MSDN

编辑:

要增加精度,需要在e:

后面指定它。
Console.WriteLine(d.ToString("e16"));
//1.8563612165426135e-004

不幸的是,没有办法在指数4之前去掉00。下面是解释:

格式说明符的大小写表示是否在指数以E或E开头。指数总是由加号组成或负号,且至少为三位。指数被填充如果需要,用零来满足这个最小值。

来源:MSDN

EDIT2: 为了消除exponent中的填充,您可以编写以下格式:

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