【问题标题】:How to format a double with minimum precision如何以最小精度格式化双精度
【发布时间】:2013-03-17 13:09:06
【问题描述】:

我有一个我认为很简单的问题。 我有一组要显示在列表框中的双打。 至少应显示三位小数,但如果多于三位,则应全部显示。

我认为这会起作用,但它最终只显示小数点后三位:

    string.Format("{0} {1} {2}", freq.ToString("#0.000#", CultureInfo.CurrentCulture), hz, band);

也许我错过了什么。我真的不想手动检查位数并在必要时转换格式块。

谢谢。

【问题讨论】:

    标签: c# format double precision tostring


    【解决方案1】:

    只需在格式字符串中添加更多"#"

    freq.ToString("#0.000#############", CultureInfo.CurrentCulture)
    

    double 具有 15-16 digits precision,因此 13 # 应该适用于所有情况。

    【讨论】:

    • freq = 1e-7/3 ?不要指望尾数的大小能告诉你最小有效数字的位值是多少。
    • 我希望事情不会这么简单。谢谢。
    【解决方案2】:

    大概:

    freq.ToString("0.000#")
    

    这将在小数分隔符后给您至少 3 位数字。

    所以:

    4.25   --> 4.250
    
    4.2555 --> 4.2555
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 2014-05-12
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多