代码之家  ›  专栏  ›  技术社区  ›  Siddharth Chabra

浮点定长数字格式c#

  •  -1
  • Siddharth Chabra  · 技术社区  · 7 年前

    我想用C#将浮点数格式化如下,这样C#中浮点数的整个宽度是固定长度(python等价格式说明符6.2f)我不想用0填充在左边,而是用空格填充

    100.00
     90.45
      7.23
      0.00
    

    我到目前为止所做的努力

    string.Format({0:###.##},100); 
    string.Format({0:###.##},90.45);
    string.Format({0:###.##},7.23);
    string.Format({0:###.##},0.00);
    

    100
    90.45
    7.23
          //nothing is printed
    

    我也经历过 this 但我找不到解决办法。 我知道string.PadLeft方法,但我想知道是否有比

    (string.format({0,0.00},number)).PadLeft(6," ")
    

    编辑 我特别要问的是,是否有一种正确的内在方法,而不是是否可以用同样的数学技巧来完成

    1 回复  |  直到 7 年前
        1
  •  3
  •   Chris Dunaway    7 年前

    如果您总是希望小数点后有两位数,可以在格式说明符中指定00。您还需要使用右对齐的字段宽度(我使用6作为最大字段宽度)。

    试试这个:

    void Main()
    {
        Console.WriteLine(string.Format("{0,6:##0.00}",100.0)); 
        Console.WriteLine(string.Format("{0,6:##0.00}",90.45));
        Console.WriteLine(string.Format("{0,6:##0.00}",7.23));
        Console.WriteLine(string.Format("{0,6:##0.00}",0.00));
    }
    

    在LinqPad中,它输出:

    100.00
     90.45
      7.23
      0.00