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

时间:2015-01-13 07:26:15

标签: c# double

我想限制下面程序中显示的数字的数量。我得到的结果为3.33333333333333E + 15

但我希望将结果变量显示为3.333E + 15,以与excel表格中使用的完全匹配。

还有其他方法吗?我也试过Math.Round,但它没有满足我的要求。

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

1 个答案:

答案 0 :(得分:3)

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

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

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