C# 中的字符串格式

发布于 2024-09-14 23:38:49 字数 182 浏览 9 评论 0原文

我的值范围为 1 到 10000000。 在值 10000 之后,我需要将值显示为 1E6,1E7,1E8,.... 如何在 string.Format 中设置它?

感谢大家的回复。
现在我可以使用格式“0.E0”显示 1E5,1E6,1E7,.... 但我不想将“E”从 1 设置为 10000。
这件事该怎么办呢?

I have value ranging from 1 to 10000000.
After value 10000 i need to show values as 1E6,1E7,1E8,....
How to set this in string.Format ?

Thanks to all for replying.
Now i am able to display 1E5,1E6,1E7,....by using format "0.E0"
but i dont want to set "E" from 1 to 10000.
How to go about this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

始终不够爱げ你 2024-09-21 23:38:49

您可以使用 指数表示法 但我认为它会适用于所有数字,而不仅仅是大于 10000 的数字。您可能需要有一个条件来处理这种情况。

You could use the exponent notation but I think that it will work for all numbers and not only those greater than 10000. You might need to have a condition to handle this case.

江湖彼岸 2024-09-21 23:38:49

像这样的事情应该可以解决问题:

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

注意:为函数选择一个更好的名称。

Something like this should do the trick:

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: pick a better name for the function.

酷炫老祖宗 2024-09-21 23:38:49

我建议将该值称为浮点数。这样您就可以使用“NumberStyles.AllowExponent”,这将准确地提供您正在寻找的内容。

    string i = "100000000000";
    float g = float.Parse(i,System.Globalization.NumberStyles.AllowExponent);

    Console.WriteLine(g.ToString());

I suggest to refer to the value as a float. That way you can use the "NumberStyles.AllowExponent" and that will provide exactly what you are looking for.

    string i = "100000000000";
    float g = float.Parse(i,System.Globalization.NumberStyles.AllowExponent);

    Console.WriteLine(g.ToString());
望笑 2024-09-21 23:38:49
String.Format("10^8 = {0:e}", 100000000"); //The "e" will appear lowercase
String.Format("10^8 = {0:E}", 100000000"); //The "E" will appear in uppercase

如果你想让它更漂亮,可以试试这个:

Console.WriteLine("10^8 = " + 100000000.ToString("0.##E0"));
String.Format("10^8 = {0:e}", 100000000"); //The "e" will appear lowercase
String.Format("10^8 = {0:E}", 100000000"); //The "E" will appear in uppercase

If you want it to be prettier, try this:

Console.WriteLine("10^8 = " + 100000000.ToString("0.##E0"));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文