将十进制数格式化为美元货币。

6
<%= Math.Round(netValue)%>

它的输出示例可能是-1243313

如何确保它格式化为美元货币(包括'$'、正确的逗号等)?

4个回答

10
也许:
<%=string.Format(CultureInfo.GetCultureInfo(1033), "{0:C}", Math.Round(netValue)) %>

(1033是'英语-美国'文化的区域标识符)


2
你也可以使用*Math.Round(netValue).ToString("{0:C}", new CultureInfo("en-US"))*,在我看来更加简洁。 - Pauli Østerø
1
我会认真考虑将1033替换为“en-US”,以提高可读性。 - Pete Stensønes
1
@Pete - 嗯...作为法国人,我像阅读en-US一样轻松地阅读1033 :-) - Simon Mourier
我也非常熟悉它是英国的(因为尽管美国人认为en-US和en-GB是相同的!),但我仍然认为本地字符串比魔术数字更容易在源代码中阅读,无论魔术数字有多熟悉。 - Pete Stensønes

3
如果当前的线程文化是en-US,那么您不需要指定它。
<%= Math.Round(netValue).ToString("C") %> 

否则,要获取美国的文化,请先创建一个文化对象。
CultureInfo usaCulture = new CultureInfo("en-US");

你可以将其传递给 decimal 对象上的 ToString 方法。
<%= Math.Round(netValue).ToString("C", usaCulture) %> 

1
您可以像这样使用format的货币代码C

decimal moneyvalue = 1921.39;
string output = String.Format("Order Total: {0:C}", moneyvalue);
Console.WriteLine(output);

编辑:如果国际化是一个问题,您可能也想看一下本地化


1
链接已经失效。我认为这个链接可以使用:http://msdn.microsoft.com/zh-cn/library/aa292205(v=vs.71).aspx - MasterMastic

0

4
Stack Overflow不应只是一个链接收集库。至少要引用页面上相关的文字,留下链接供进一步阅读。 - Pauli Østerø

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接