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

问题描述 投票:2回答:4

假设我的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文档中执行此操作。

asp.net
4个回答
9
投票

试试这段代码:

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

2
投票

如果您正在处理字符串,请尝试使用此代码

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

1
投票

ToString(string)方法仅对数值类型进行操作,但Eval(string)返回object

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

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


0
投票

晚了......但很有用

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.