String.Format,单行空格仅用于正数

本文关键字:用于 空格 Format 单行 String | 更新日期: 2023-09-27 18:29:20

我正试图使用字符串格式对小数应用格式{0:#,##0.00;(#,##0.00)},但它会丢失正数的尾部空格,从而使小数点保持一行。

当右对齐时,结果应该如下所示:

  123.45 |  
 (123.45)|

有什么想法吗?

String.Format,单行空格仅用于正数

以下对我有效:

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

您可能会发现这个格式化实用程序对很有用

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