在aspx页面中将int格式化为货币格式的字符串

时间:2012-07-20 15:45:05

标签: asp.net

假设我的aspx页面中有这个标签:

<asp:Label ID="savings" runat="server" Text='<%# Eval("savings")%>' />

有没有办法将标签文本格式化为货币格式的字符串?我正在寻找这样的东西:

<asp:Label ID="savings" runat="server" Text='<%# Eval("savings").ToString("C")%>' />

当我运行时,我得到:

 No overload for method 'ToString' takes 1 arguments

编译错误。

我知道我可以轻松地在我的代码隐藏中执行此操作,但我想知道是否可以从.aspx文档中进行此操作。

4 个答案:

答案 0 :(得分:9)

试试这段代码:

<asp:Label ID="savings" runat="server" Text='<%# string.Format("{0:C}", Eval("savings"))%>' />

答案 1 :(得分:2)

如果您正在处理字符串

,请尝试使用此代码
<asp:Label ID="savings" runat="server" Text='<%# String.Format("{0:c}", Convert.ToDecimal(Eval("savings")))%>' />

答案 2 :(得分:1)

ToString(string)方法仅适用于数字类型,但Eval(string)会返回object

在调用扩展方法之前将结果转换为正确的类型,如下所示:

<%# ((decimal)Eval("savings")).ToString("C") %>

答案 3 :(得分:0)

迟到但很有用

任何寻找印度货币格式或任何其他货币的人都使用CultureInfo类。 例如:

(YourData).ToString("C2",CultureInfo.CreateSpecificCulture("in-IN"));

我建议您将尝试格式化的数据转换为十进制以便跳过任何开销,同时检查this页面以获取更多文化组合以及有关格式化的更多信息。