我正在将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
符号。
答案 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"));