我将数字存储在表中,例如11000000,7000000 我想将它们转换为1.1 Crore,70 lacs等(Indian numbering system)并在aspx(UI)页面上显示它们。
有没有办法格式化这些数字?
我在.cs文件中编写了以下c#函数
public static int CustomFormat(int budget)
{
if (budget >= 10000000)
{
budget = Int32.Parse(((budget / 10000000) + "Cr").ToString());
}
else if (budget >= 100000)
{
budget = Int32.Parse(((budget / 100000) + "Lacs").ToString().Trim());
}
return budget;
}
将从.aspx(UI)页面调用,如下所示:
<%# CustomFormat(Int32.Parse(Eval("budget").ToString())) %>
但它显示以下错误:
输入字符串的格式不正确。
答案 0 :(得分:1)
这里有几个问题:
1)在您的界面中:Int32.Parse(Eval("budget").ToString())
在这里,您似乎采用int(预算),将其转换为字符串,然后立即将其转换回int。据我所知,这完全是多余的。
2)您正在将包含文本的字符串(例如&#34; 10000Cr&#34;)传递给Int32.Parse,这显然不会起作用。我不认为Int32.Parse在这里是必要的。如果你想要分数(例如你提到的1.1),那么将它们转换为int也无济于事。您需要float
。
3)你想要一个格式化的文本,包括&#34; Cr&#34;或&#34; Lacs&#34;短语,但您的函数返回int
,但不能包含此项。它需要返回string
。
我认为这应该有效(我现在无法测试):
public static string CustomFormat(float budget)
{
string budgetString = "";
if (budget >= 10000000)
{
budgetString = (budget / 10000000) + "Cr";
}
else if (budget >= 100000)
{
budgetString = (budget / 100000) + "Lacs";
}
return budgetString;
}
在用户界面中:
<%# CustomFormat(Eval("budget")) %>