使用最新框架使用toString()格式化十进制。 4.7.2或核心2.2

时间:2019-03-04 17:18:57

标签: c# .net .net-core

还有像我这样的问题,但我觉得它们已经过时了。

decimal decimalVar = 18000;
String formated = decimalVar.ToString("{0:N}");
print(formated);

我想要这个结果:

18000.00

但是我的结果是这样的

{18000:n}

我该怎么做?

3 个答案:

答案 0 :(得分:1)

只需像这样使用ToString("###.00")

    decimal num = 18000;
    Console.WriteLine(num.ToString("##.00"));   

结果18000.00

假设像decimal num = 18000.22m;这样的十进制值 结果将是18000.22

答案 1 :(得分:1)

您要寻找的是decimalVar.ToString("N2")

有关更多信息,文档位于:https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings

其他示例:

double dblValue = -12445.6789;
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture));
// Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1", 
                  CultureInfo.CreateSpecificCulture("sv-SE")));
// Displays -12 445,7

int intValue = 123456789;
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture));
// Displays 123,456,789.0 

编辑:“ N”格式添加了分隔符,而在您的帖子中您的“预期结果”却没有,因此您可能需要使用“ F”。 decimalVar.ToString("F2")

答案 2 :(得分:1)

您可以使用

string formated = decimalVar.ToString("N2");

使用ToString()

string formated = $"{decimalVar:N}";

使用字符串插值。

两者的结果相同。

您在尝试提出的问题表明您可能正在混淆这两个中的两个。