【问题标题】:Formatting number's output [duplicate]格式化数字的输出[重复]
【发布时间】:2014-09-30 22:58:44
【问题描述】:

例如,我有一个数字 0,000000005,它像 5E-09 一样显示在 ListBox 中。所以,我希望它准确地显示为 0,000000005。有没有办法做到这一点?非常感谢。

listView1.Items[i].SubItems.Add(Convert.ToString(0.000000005));

【问题讨论】:

  • 版主注意:这个特定问题不需要事先努力。它清晰且范围合理;如果您知道该怎么做,请提供答案。
  • OP 注释: 您正在寻找 数字格式字符串。 您可以在此处的文档中找到它们:msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx
  • 好的,谢谢。我很抱歉我没有注意现有的帖子。

标签: c# listbox formatting numbers


【解决方案1】:

使用格式说明符,例如您的情况:

listView1.Items[i].SubItems.Add(String.Format("{0:F9}", 0.0000005));

通用示例:

double v = 17688.65849;
double v2 = 0.15;
int x = 21;

Console.WriteLine("{0:F2}", v); // 17688.66
Console.WriteLine("{0:N5}", v); // 17, 688.65849
Console.WriteLine("{0:e}", v);  // 1.768866e+004
Console.WriteLine("{0:r}", v);  // 17688.65849
Console.WriteLine("{0:p}", v2); // 15.00 %
Console.WriteLine("{0:X}", x);  // 15
Console.WriteLine("{0:D12}", x);  // 000000000021
Console.WriteLine("{0:C}", 189.99); // $189.99

【讨论】:

  • 如果你不知道它是 9 位数怎么办?如果事先不知道?
  • @SriramSakthivel 它将自动填充 0。所以 0.5 会变成 0.500000000。如果需要,它也会自动舍入。
  • 如果更大0.00000000000000000005?我不知道它的长度?我可以使用什么格式。?截至目前,我正在使用“0.################”这样的长自定义格式?有没有更好的办法?
  • @SriramSakthivel 0.00000000000000000005 更小,但不会改变。在这种情况下,您将看到四舍五入的值:0.000000000。如果您想要更多数字,则必须更改值,但在这种情况下,我建议使用科学格式 {0:e}。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
  • 2014-12-12
  • 2017-02-20
相关资源
最近更新 更多