【问题标题】:How to specify total number of character in C# number formatting?如何在 C# 数字格式中指定字符总数?
【发布时间】:2009-11-04 12:54:34
【问题描述】:

有没有办法在格式化双精度时指定总字符数?

假设我有 0.00012345678,我指定了字符总数 (7),我想得到 1.23e-4。格式“G7”将给出 1.2345e-4。

更多示例:

0.00000012345678F -> 1.23e-7 
0.00012345678F    -> 1.23e-4 
0.12345678F       -> 1.23e-1 
1.2345678F        -> 1.23457 
12.345678F        -> 12.3457
12345678F         -> 1.234e8

【问题讨论】:

    标签: c# string formatting numbers


    【解决方案1】:

    您可能希望像这样使用“e”格式字符串...

    String.Format("{0:0.00e+0}", number);
    

    【讨论】:

    • 谢谢,它适用于我的示例,但这不是我想要的 :) 让我尝试提供更多详细信息:我的目标是能够指定输出中的字符总数,所以如果我指定 4 我想得到这些结果: 0.00000012345678F -> 1.23e-7 0.00012345678F -> 1.23e-4 0.12345678F -> 1.23e-1 1.2345678F -> 1.2345 12.345678F -> 12.355
    【解决方案2】:

    您对“精度”的含义有误解。对于浮点数,“精度”表示有效位数的个数,所以“G6”返回的结果是正确的。

    如果您想要固定数量的字符,请像 Jason 建议的那样使用 custom format string

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 1970-01-01
      • 2015-08-27
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 2016-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多