格式化数字以显示数千或数百万而不分割

时间:2017-03-02 17:48:06

标签: .net formatting

是否有自定义数字格式字符串可用于显示数千或数百万的数字?

e.g。我想将数字2,234,567.00显示为:

$ 2,235(如果成千上万)

...或...

2.2美元(如果以百万计)

...在:

中使用不同的FormatStrings
    MsgBox(MyNumber.ToString("FormatStrings"))

我希望永远不必根据所需的显示字符串构建将数字除以1,000或1,000,000的逻辑。

2 个答案:

答案 0 :(得分:1)

您可以使用组分隔符“,”进行缩放,如Custom Numeric Format Strings

中所述

E.g。

double d = 2234567.00;
Console.WriteLine(d.ToString("#,0,")); // 2,235
Console.WriteLine(d.ToString("#,0,.0")); // 2,234.6
Console.WriteLine(d.ToString("#,0,,.0")); //2.2

答案 1 :(得分:-1)

@ Joe的回答是正确的 - 以下只是提供了额外的背景,答案以与问题相同的格式呈现。

这实际上很简单。

显示2,234,567.00 - 以千计为单位 ​​- 为2,235 ...

    MsgBox(MyNumber.ToString("#,##0,"))

显示2,234,567.00 - 以百万计 - 为2.2 ......

    MsgBox(MyNumber.ToString("#,##0,,.0"))

魔术发生在0之后的逗号。它们各自替换三位数。