如何限制C#中double显示的字符数?

How to limit the no of character displayed in double in C#?

我想限制下面程序中显示的号码数。我得到的结果是 3.33333333333333E+15

但我想将 result 变量显示为 3.333E+15 以与 excel sheet.

中使用的完全匹配

还有其他方法吗?我也试过 Math.Round 但它不符合我的要求。

if (double.TryParse(value, out res))  //value=3333333333333333
{
    double result = Math.Truncate(res*100/100);  //result=3.33333333333333E+15
}

出于显示目的,您通常倾向于使用 format strings。在这种情况下,格式字符串 G4 将匹配您所需的输出格式。不要破坏值本身以适合您的格式。特别是对于无论如何都容易失败的二进制浮点数。例如。您可以四舍五入仅让您的号码显示为 3.3330000002e15.

请注意,根据您将值转换为字符串的方式,上述 G4 的用法会有所不同:

var s = d.ToString("G4");
var s2 = string.Format("Value: {0:G4}", d);