14

在 C# 中,我有一个值为 10215.24 的双变量价格。我想在一些数字后用逗号显示价格。我的预期输出是 10,215.24

4

6 回答 6

33
myPrice.ToString("N2");

根据您的需要,您可能还希望显示货币符号:

myPrice.ToString("C2");

(C 或 N 后面的数字表示应该使用多少位小数)。(C 将数字格式化为货币字符串,其中包括货币符号)

为了完全政治正确,您还可以指定应该使用的 CultureInfo。

于 2009-07-17T12:35:31.537 回答
20

我认为应该这样做:

String.Format("{0:C}", doubleVar);

如果您不想要货币符号,请执行以下操作:

String.Format("{0:N2}", doubleVar);
于 2009-07-17T12:34:16.277 回答
6

作为旁注,我建议查看货币的 Decimal 类型。它避免了困扰浮点数的舍入错误,但与整数不同,它可以在小数点后有数字。

于 2009-07-17T12:42:35.280 回答
5

查看格式字符串,特别是“C”或“N”。

double price = 1234.25;
string FormattedPrice = price.ToString("N"); // 1,234.25
于 2009-07-17T12:34:45.733 回答
3

这可能会有所帮助

    String.Format("{#,##0.00}", 1243.50); // Outputs “1,243.50″

    String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 1243.50); // Outputs “$1,243.50″ 

    String.Format("{0:$#,##0.00;($#,##0.00);Zero}", -1243.50); // Outputs “($1,243.50)″ 

    String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 0); // Outputs “Zero″ 
于 2010-01-06T12:42:45.833 回答
0

你想要的是“N2”。

这是一个例子:

double dPrice = 29.999988887777666655554444333322221111; 
string sPrice = "£" + dPrice.ToString("N2"); 

你甚至可能喜欢这样:

string sPrice = "";

if(dPrice < 1)
{
    sPrice = ((int)(dPrice * 100)) + "p";

} else
{
    sPrice = "£" + dPrice.ToString("N2");

} 

这很好地浓缩了这一点:

string sPrice = dPrice < 1 ? ((int)(dPrice * 100)).ToString("N0") + "p" : "£" + dPrice.ToString("N2"); 

在msdn.microsoft.com/en-us/library/fht0f5be.aspx进一步阅读各种其他类型的格式

于 2014-03-05T16:11:36.670 回答