C#: Formatting Price value string
在C中,我有一个值为10215.24的双变量价格。我想在一些数字后用逗号表示价格。我的预期产量是10215.24
1 | myPrice.ToString("N2"); |
根据需要,您还可能希望显示货币符号:
1 | myPrice.ToString("C2"); |
(C或N后面的数字表示应该使用多少个小数)。(C将数字格式化为货币字符串,其中包括货币符号)
为了在政治上完全正确,您还可以指定应该使用的文化信息。
我认为应该这样做:
1 | String.Format("{0:C}", doubleVar); |
如果不需要货币符号,请执行以下操作:
1 | String.Format("{0:N2}", doubleVar); |
作为补充说明,我建议您查看货币的十进制类型。它避免了困扰浮动的舍入错误,但与整数不同,它可以在小数点后有数字。
查看格式字符串,特别是"c"或"n"。
1 2 | double price = 1234.25; string FormattedPrice = price.ToString("N"); // 1,234.25 |
这可能有帮助
1 2 3 4 5 6 7 | 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"。
下面是一个例子:
1 2 | double dPrice = 29.999988887777666655554444333322221111; string sPrice ="£" + dPrice.ToString("N2"); |
你可能会喜欢这样:
1 2 3 4 5 6 7 8 9 10 11 | string sPrice =""; if(dPrice < 1) { sPrice = ((int)(dPrice * 100)) +"p"; } else { sPrice ="£" + dPrice.ToString("N2"); } |
这很好地浓缩成:
1 | string sPrice = dPrice < 1 ? ((int)(dPrice * 100)).ToString("N0") +"p" :"£" + dPrice.ToString("N2"); |
有关各种其他格式的详细信息,请访问msdn.microsoft.com/en-us/library/fht0f5be.aspx。