如何限制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);
我想限制下面程序中显示的号码数。我得到的结果是 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);