.Net 格式字符串以千为单位显示,还包括逗号分隔符

.Net format string to show In thousands, but also include comma separator

我还没有看到结合这两个概念的例子。

  1. 使用“#,##0”以逗号分隔符显示数字(例如 1832567 显示为 1,832,567)
  2. 使用“0”格式字符串显示以千为单位的数字(例如 1832567 显示为 1833)

如果我想以千为单位显示相同的数字并使用逗号分隔符(例如 1,833)怎么办?

我相信有一些方法可以使用 formulas/calculations 来完成。但我想知道是否有格式字符串的直接方法?

谢谢。

您可以除以 1000.0,第一个格式字符串将删除多余的字符:

int foo = 1832567;
Console.WriteLine( (foo/1000.0).ToString("#,##0"));

但是请求的“格式字符串内”部分失败了。也许这仍然可以作为内插字符串的一部分,因为我们可以在花括号之间放置所有内容:

int foo = 1832567;
Console.WriteLine($"{foo/1000.0:#,##0}");

请注意 .0 以避免整数除法,这会截断而不是舍入结果。

此格式将满足您的要求

"#,##0,"

Console.WriteLine(1832567.ToString("#,##0,"));

您可以在 https://dotnetfiddle.net/leoOnc

查看示例

这似乎在专门用于 The "," custom format specifier 的部分的自定义数字格式字符串中进行了描述,他们讨论了如何将逗号用于两者

Group separator: If one or more commas are specified between two digit placeholders (0 or #) that format the integral digits of a number, a group separator character is inserted between each number group in the integral part of the output.
...
Number scaling specifier: If one or more commas are specified immediately to the left of the explicit or implicit decimal point, the number to be formatted is divided by 1000 for each comma. For example, if the string "0,," is used to format the number 100 million, the output is "100".