C#数字千分位问题

1、C#中用最简单的方法把数字(不含小数)转换为千分位格式:
     如1234567变成1,234,567

     方法:

1234567.ToString("###,###")   或  1234567.ToString("N0")

2、C#中把数字转换成带两位小数的千分位字符:

     如1234567.891变成1,234,567.89

     方法:

String.Format("{0:N}",1234567.891);   //默认为两位小数,如果没有小数位,则小数位补两个0

     或:

String.Format("{0:N2}",1234567.891);

 

字母 含义
C或c Currency 货币格式
D或d Decimal 十进制格式(十进制整数,不要和.Net的Decimal数据类型混淆了)
E或e Exponent 指数格式
F或f Fixed point 固定精度格式
G或g General 常用格式
N或n 用逗号分割千位的数字,比如1234将会被变成1,234
P或p Percentage 百分符号格式
R或r Round-trip 圆整(只用于浮点数)保证一个数字被转化成字符串以后可以再被转回成同样的数字
X或x Hex 16进制格式
示例如下(见cs_6.cs)

static void Main() 
{
int i=12345;
Console.WriteLine("{0:C}",i); //货币
Console.WriteLine("{0:D}",i); //十进制数
Console.WriteLine("{0:E}",i); //科学技术法
Console.WriteLine("{0:F}",i); // 浮点数表示法
Console.WriteLine("{0:G}",i); //G或g General 常用格式
Console.WriteLine("{0:N}",i); //N或n 用逗号分割千位的数字
}

 

测试:

第一种方法:

/// <summary>
        /// 利用ToString转换成指定格式
        /// </summary>
        /// <param name="s"></param>
        /// <returns></returns>
        static string Thousands(string s)
        {
            double n=double.Parse(s);
            string nums = n.ToString("###,###");//或.ToString("N0")
            return nums;
        }
//调用第一种方法
            try
            {
                Console.WriteLine("请输入数字:");
                string s = (Console.ReadLine()).ToString();
                string th = Thousands(s);
                Console.WriteLine("数字已标记千分位:\n{0}", th);
                Console.ReadLine();
            }
            catch
            {
                Console.WriteLine("输入有误,程序结束请重新输入");
                Console.ReadLine();
            }

第二种方法:

/// <summary>
        /// 利用string.Format限定格式转换
        /// </summary>
        /// <param name="s"></param>
        /// <returns></returns>
        static string Thousand(string s)
        {
            int i = int.Parse(s);
            string str=string.Format("{0:N}", i);//得出千分位结果并保留两位小数
            int strLast=str.IndexOf(".");//找到.在字符串中的位置
            string nums=str.Substring(0,strLast);//保留.之前的字符串
            return nums;
        }
//调用第二种方法
            string nums=Thousand("12312312");
            Console.WriteLine(nums);
            Console.ReadLine();

你可能感兴趣的:(C#数字千分位问题)