【发布时间】:2010-08-16 08:28:40
【问题描述】:
我的值在 1 到 10000000 之间。 在值 10000 之后,我需要将值显示为 1E6,1E7,1E8,.... 如何在 string.Format 中设置它?
感谢大家的回复。
现在我可以显示 1E5,1E6,1E7,....通过使用格式“0.E0”
但我不想将“E”从 1 设置为 10000。
如何解决这个问题?
【问题讨论】:
我的值在 1 到 10000000 之间。 在值 10000 之后,我需要将值显示为 1E6,1E7,1E8,.... 如何在 string.Format 中设置它?
感谢大家的回复。
现在我可以显示 1E5,1E6,1E7,....通过使用格式“0.E0”
但我不想将“E”从 1 设置为 10000。
如何解决这个问题?
【问题讨论】:
您可以使用exponent notation,但我认为它适用于所有数字,而不仅仅是大于 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
nb:为函数选择一个更好的名称。
【讨论】:
【讨论】:
我建议将该值称为浮点数。这样您就可以使用“NumberStyles.AllowExponent”,这将提供您正在寻找的内容。
string i = "100000000000";
float g = float.Parse(i,System.Globalization.NumberStyles.AllowExponent);
Console.WriteLine(g.ToString());
【讨论】:
如果你想让它更漂亮,试试这个:
Console.WriteLine("10^8 = " + 100000000.ToString("0.##E0"));【讨论】: