String.Format,仅用于正数的单个尾随空格

时间:2014-11-05 18:19:17

标签: c# string format decimal

我尝试使用string.format在小数上应用格式{0:#,## 0.00;(#,## 0.00)},但它正从正值中丢失尾随空格将小数点保持在一行。

当正确对齐时,结果应如下所示:

  123.45 |  
 (123.45)|

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

以下适用于我:

var numbers = new List<double> {123.45, -123.45, 0, -1, -100000.12345, 100000.12345};

foreach (var number in numbers)
{
    var numberString = number.ToString("#,##0.00 ;(#,##0.00)");

    // This is the only way I know how to right-align in console window
    Console.CursorLeft = (Console.BufferWidth - 1) - numberString.Length;

    Console.WriteLine(numberString);
}

// Output:
//                                       123.45
//                                      (123.45)
//                                         0.00
//                                        (1.00)
//                                  (100,000.12)
//                                   100,000.12

答案 1 :(得分:-2)

您可能会发现此格式化实用程序很有用

https://code.msdn.microsoft.com/NET-Framework-4-Formatting-9c4dae8d