我想限制下面程序中显示的数字的数量。我得到的结果为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
}
答案 0 :(得分:3)
出于显示目的,您通常倾向于使用format strings。在这种情况下,格式字符串G4
将匹配您想要的输出格式。不要破坏值本身以适合您的格式。特别是二进制浮点,无论如何都容易出现故障。例如。你可以将尾随数字四舍五入,只是让你的号码显示为3.3330000002e15
。
请注意,根据您将值转换为字符串的方式,上述G4
的使用情况有所不同:
var s = d.ToString("G4");
var s2 = string.Format("Value: {0:G4}", d);