3

我需要将数字转换为逗号分隔的格式以显示在C#.

例如:

1000 to 1,000
45000 to 45,000
150000 to 1,50,000
21545000 to 2,15,45,000

如何实现这一点C#

我尝试了以下代码:

int number = 1000;
number.ToString("#,##0");

但它不适用于lakhs.

4

6 回答 6

7

我想您可以通过根据需要创建自定义数字格式信息来做到这一点

NumberFormatInfo nfo = new NumberFormatInfo();
nfo.CurrencyGroupSeparator = ",";
// you are interested in this part of controlling the group sizes
nfo.CurrencyGroupSizes = new int[] { 3, 2 };
nfo.CurrencySymbol = "";

Console.WriteLine(15000000.ToString("c0", nfo)); // prints 1,50,00,000

如果仅针对数字,那么您也可以

nfo.NumberGroupSeparator = ",";
nfo.NumberGroupSizes = new int[] { 3, 2 };

Console.WriteLine(15000000.ToString("N0", nfo));
于 2013-06-03T06:44:27.890 回答
3

这是与您类似的线程,请在千位中添加逗号作为数字

这是对我来说完美的解决方案

     String.Format("{0:n}", 1234);

     String.Format("{0:n0}", 9876); // no decimals
于 2013-06-03T07:08:12.133 回答
2

如果你想要独一无二并且做你不必做的额外工作,这里是我为整数创建的一个函数,你可以在任何你想要的间隔放置逗号,只需为每千分之一放置一个逗号,或者你可以选择做2或6或任何你喜欢的。

             public static string CommaInt(int Number,int Comma)
    {
     string IntegerNumber = Number.ToString();
     string output="";
     int q = IntegerNumber.Length % Comma;
     int x = q==0?Comma:q;
     int i = -1;
     foreach (char y in IntegerNumber)
     {
             i++;
             if (i == x) output += "," + y;
             else if (i > Comma && (i-x) % Comma == 0) output += "," + y;
             else output += y;

     }
     return output;
    }
于 2013-06-03T08:25:45.367 回答
1

你有没有尝试过:

ToString("#,##0.00")
于 2013-06-03T06:35:57.080 回答
0

快速而肮脏的方式:

Int32 number = 123456789;
String temp = String.Format(new CultureInfo("en-IN"), "{0:C0}", number);
//The above line will give Rs. 12,34,56,789. Remove the currency symbol
String indianFormatNumber = temp.Substring(3);
于 2013-06-03T06:39:58.777 回答
0

一个简单的解决方案是将格式传递给ToString()方法:

string format = "$#,##0.00;-$#,##0.00;Zero";
   decimal positiveMoney = 24508975.94m;
   decimal negativeMoney = -34.78m;
   decimal zeroMoney = 0m;
   positiveMoney.ToString(format);  //will return $24,508,975.94
   negativeMoney.ToString(format);  //will return -$34.78 
   zeroMoney.ToString(format);      //will return Zero

希望这可以帮助,

于 2019-02-08T13:03:46.233 回答