C#:格式化价格值字符串

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

myPrice.ToString("N2"); 

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

 myPrice.ToString("C2"); 

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

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

我认为应该这样做:

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

如果您不想要货币符号,那么只需执行以下操作:

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

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

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

 double price = 1234.25; string FormattedPrice = price.ToString("N"); // 1,234.25 

这可能有所帮助

  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″ 

你想要的是“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,了解各种其他类型的格式