我想显示英镑符号和格式0.00,即£45.00,£4.10。我使用以下声明:
<td style="text-align:center"><%# Convert.ToString(Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets")), new System.Globalization.CultureInfo("en-GB")) %></td>
但它不起作用。有什么问题。
任何人都可以帮助我吗?
答案 0 :(得分:79)
使用Currency标准格式字符串以及采用格式提供程序的string.Format方法:
string.Format(new System.Globalization.CultureInfo("en-GB"), "{0:C}", amount)
CultureInfo可以作为格式提供者,也可以为您提供文化的正确货币符号。
然后您的示例将被读取(间隔以便于阅读):
<td style="text-align:center">
<%# string.Format(new System.Globalization.CultureInfo("en-GB"),
"{0:C}",
Convert.ToSingle(Eval("tourOurPrice"))
/ Convert.ToInt32(Eval("noOfTickets")))
%>
</td>
答案 1 :(得分:3)
怎么样
<%# (Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets"))).ToString("C", New System.Globalization.CultureInfo("en-GB")) %>
答案 2 :(得分:2)
尝试指定确切的货币格式
String.Format(...CultureInfo("en-GB"), "{0:C}"....
答案 3 :(得分:1)
这应该有效:
<td style="text-align:center">
<%# String.Format( new System.Globalization.CultureInfo("en-GB"), "{0:c}", Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets")) %>
</td>
答案 4 :(得分:1)
我想添加一个额外的相关答案,以展示如何在string.Format()或StringBuffer.AppendFormat()中使用克隆的CultureInfo对象。虽然不是货币,但我需要为我的雇主风格指南格式化AM / PM指示符。这是我做的:
var culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.AMDesignator = "a.m.";
culture.DateTimeFormat.PMDesignator = "p.m.";
....
var msg = new StringBuilder();
msg.AppendFormat(culture,"Last modified: {0:M/d/yyyy h:mm tt}", ad.DateModified);
你可以用string.Format():
做同样的事情string strMsg = string.Format(culture, "Last modified: {0:M/d/yyyy h:mm tt}", ad.DateModified);