我的C#应用程序中有很多带有int,decimal变量的类。 请考虑以下示例。
public class Employee
{
decimal TotalSalary;
public decimal Salary
{
get
{
return TotalSalary;
}
set
{
TotalSalary = value;
}
}
public string GetSalary()
{
return TotalSalary.ToString();
}
}
public class Contract
{
Employee emp1 = new Employee();
public void ProcessSalary()
{
emp1.Salary = 100000;
SendToLabel(emp1.GetSalary());
}
}
在上面的例子中,每当我在我的应用程序中使用任何decimal / int变量的“ToString”时,它应该给我一个印度编号格式的数字,如下所示。
100000应呈现为1,00,000
10000应呈现为10,000
这应该在我的C#.NET应用程序中全局发生。 我可以使用global.asax页面中的CultureInfo来执行此操作。
目前正在使用以下代码格式化日期。
CultureInfo newCulture = (CultureInfo) System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
newCulture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";
newCulture.DateTimeFormat.DateSeparator = "-";
Thread.CurrentThread.CurrentCulture = newCulture;
答案 0 :(得分:2)
以下代码对您有用,
public string GetSalary()
{
CultureInfo inr = new CultureInfo("hi-IN");
return string.Format(inr, "{0:#,#}", TotalSalary);
}
答案 1 :(得分:2)
每当我使用" ToString"在我的应用程序中的任何decimal / int变量,它应该给我印度编号格式的数字
您还可以将新方法设为decimal
和int
类型的扩展名:
public static class MyExtensions
{
public static string MyOutput(this decimal number)
{
return number.ToString("#,#.##", new CultureInfo(0x0439));
}
public static string MyOutput(this int number)
{
return number.ToString("#,#", new CultureInfo(0x0439));
}
}
所有culture codes以供进一步参考。
然后,您可以在整个程序中使用它来处理decimal/int
类型的变量:
public string GetSalary()
{
return TotalSalary.MyOutput();
}
输出:decimal asd = 1000000.23m;
10,00,000.23
答案 2 :(得分:0)
GetSalary
的签名将如下:
public string GetSalary()
{
return String.Format("{0:n}", TotalSalary);
}
如果要将小数舍入为"{0:n3}"
位,则可以使用3
。