我有一个值范围从1到10000000。
在10000之后的值中,我需要显示为1E6,1E7,1E8等。如何在string.Format中设置?
感谢所有人的回复。 现在我能够使用格式“0.E0”显示1E5,1E6,1E7等。 但是我不想将"E"设为1到10000。 如何解决这个问题?
感谢所有人的回复。 现在我能够使用格式“0.E0”显示1E5,1E6,1E7等。 但是我不想将"E"设为1到10000。 如何解决这个问题?
这样的代码应该可以解决问题:
void Main()
{
Console.WriteLine(NumberToString(9999));
Console.WriteLine(NumberToString(10000));
Console.WriteLine(NumberToString(99990));
Console.WriteLine(NumberToString(100000));
Console.WriteLine(NumberToString(10000000));
}
// Define other methods and classes here
static string NumberToString(int n)
{
return (n > 10000) ? n.ToString("E") : n.ToString();
}
=>
9999
10000
9.999000E+004
1.000000E+005
1.000000E+007
注意:给函数取一个更好的名字。
我建议将该值参考为浮点数。这样,您可以使用"NumberStyles.AllowExponent",从而提供您所需的精确结果。
string i = "100000000000";
float g = float.Parse(i,System.Globalization.NumberStyles.AllowExponent);
Console.WriteLine(g.ToString());
String.Format("10^8 = {0:e}", 100000000"); // "e" 将以小写字母形式出现 String.Format("10^8 = {0:E}", 100000000"); // "E" 将以大写字母形式出现
如果您想让它更漂亮,请尝试以下代码:
Console.WriteLine("10^8 = " + 100000000.ToString("0.##E0"));