如何将表格中存储的数字格式化为crore& C#中的lacs(印度编号系统)

时间:2017-05-17 10:26:37

标签: javascript c# asp.net

我将数字存储在表中,例如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())) %>

但它显示以下错误:

  

输入字符串的格式不正确。

1 个答案:

答案 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")) %>