zoukankan      html  css  js  c++  java
  • C# .ToString() 格式化

    c# ToString() 格式化字符串  格式化数值:有时,我们可能需要将数值以一定的格式来呈现,就需要对数值进行格式化。我们使用格式字符串指定格式。格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数。 
    格式说明符 说明 示例 输出 
    C 货币 2.5.ToString("C") ¥2.50  
    D 十进制数 25.ToString("D5") 00025 
    E 科学型 25000.ToString("E") 2.500000E+005 
    F 固定点 25.ToString("F2") 25.00 
    G 常规 2.5.ToString("G") 2.5 
    N 数字 2500000.ToString("N") 2,500,000.00 
    X 十六进制 255.ToString("X") FF

     

     

    C#的String.Format格式化举例
    stringstr1 =string.Format("{0:N1}",56789);               //result: 56,789.0
    stringstr2 =string.Format("{0:N2}",56789);               //result: 56,789.00
    stringstr3 =string.Format("{0:N3}",56789);               //result: 56,789.000
    stringstr8 =string.Format("{0:F1}",56789);               //result: 56789.0
    stringstr9 =string.Format("{0:F2}",56789);               //result: 56789.00
    stringstr11 =(56789 / 100.0).ToString("#.##");           //result: 567.89
    stringstr12 =(56789 / 100).ToString("#.##");             //result: 567

    C 或 c
    货币
    Console.Write("{0:C}", 2.5);  //$2.50
    Console.Write("{0:C}", -2.5); //($2.50)

    D 或 d
    十进制数
    Console.Write("{0:D5}", 25);  //00025
     
    E 或 e
    科学型
    Console.Write("{0:E}", 250000);  //2.500000E+005
     
    F 或 f
    固定点
    Console.Write("{0:F2}", 25);  //25.00
    Console.Write("{0:F0}", 25);  //25
     
    G 或 g
    常规
    Console.Write("{0:G}", 2.5);  //2.5
     
    N 或 n
    数字
    Console.Write("{0:N}", 2500000);  //2,500,000.00
     
    X 或 x
    十六进制
    Console.Write("{0:X}", 250);  //FA
    Console.Write("{0:X}", 0xffff);  //FFFF

     

     

     

    C# 数字格式化字符串详解2010-07-03 08:59 A.M.标准数字格式字符串用于格式化通用数值类型。标准数字格式字符串采用 Axx 的形式,其中 A 是称为格式说明符的字母型字符,xx 是称为精度说明符的可选整数。精度说明符的范围从 0 到 99,并且影响结果中的位数。任何包含一个以上字母字符(包括空白)的数字格式字符串都被解释为自定义数字格式字符串。

    发现网上只要你去百度谷歌搜,文章都是千篇一律,互相摘抄,抄袭。其中还有一些错误,所以这些代码,以及我其他文章的代码都是运行之后验证的。

    using System;


    namespace ToStringFormat
    {
        class Program
        {
            static void Main(string[] args)
            {
               //按照中国人习惯标准转化
                System.Globalization.CultureInfo Culinfo = System.Globalization.CultureInfo.CreateSpecificCulture("zh-Cn");


               //【C或c】,数字转换为表示货币金额的字符串。转换由当前 NumberFormatInfo 对象的货币格式信息控制。
                //精度说明符指示所需的小数位数。如果省略精度说明符,则使用当前 NumberFormatInfo 对象给定的默认货币精度。
                Console.WriteLine("(2.5).ToString('C'):" + (2.5).ToString("C", Culinfo)); //¥2.5
                Console.WriteLine("(2.5).ToString('C2'):" + (2.5).ToString("C2", Culinfo)); //¥2.50
                Console.WriteLine("(2.5).ToString('C3'):" + (2.5).ToString("C3", Culinfo)); //¥2.500
                Console.WriteLine("*************************************************************");
                //【D 或 d】,只有整型才支持此格式。数字转换为十进制数字 (0-9) 的字符串,如果数字为负,则前面加负号。
                //精度说明符指示结果字符串中所需的最少数字个数。如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。
                Console.WriteLine("(25).ToString('D'):" + (25).ToString("D", Culinfo)); //25
                Console.WriteLine("(25).ToString('D3'):" + (25).ToString("D3", Culinfo)); //025
                Console.WriteLine("(25).ToString('D4'):" + (25).ToString("D4", Culinfo)); //0025
                Console.WriteLine("(25).ToString('D5'):" + (25).ToString("D5", Culinfo)); //00025
                Console.WriteLine("*************************************************************");
                //【E 或 e】,数字转换为“-d.ddd…E+ddd”或“-d.ddd…e+ddd”形式的字符串,其中每个“d”表示一个数字 (0-9)。如果该数字为负,则该字符串以减号开头。小数点前总有一个数字。精度说明符指示小数点后所需的位数。如果省略精度说明符,则使用默认值,即小数点后六位数字。
                //格式说明符的大小写指示在指数前加前缀“E”还是“e”。指数总是由正号或负号以及最少三位数字组成。如果需要,用零填充指数以满足最少三位数字的要求。
                Console.WriteLine("(25000).ToString('E'):" + (25000).ToString("E", Culinfo)); //2.500000E+004
                Console.WriteLine("(25000).ToString('E2'):" + (25000).ToString("E2", Culinfo)); //2.50E+004
                Console.WriteLine("(25000).ToString('E3'):" + (25000).ToString("E3", Culinfo)); //2.500E+004
                Console.WriteLine("(25000).ToString('e'):" + (25000).ToString("e", Culinfo)); //2.500000e+004
                Console.WriteLine("(25000).ToString('e2'):" + (25000).ToString("e2", Culinfo)); //2.50e+004
                Console.WriteLine("(25000).ToString('e3'):" + (25000).ToString("e3", Culinfo)); //2.500e+004
                Console.WriteLine("*************************************************************");
                //【F 或 f】,数字转换为“-ddd.ddd…”形式的字符串,其中每个“d”表示一个数字 (0-9)。如果该数字为负,则该字符串以减号开头。
                //精度说明符指示所需的小数位数。如果忽略精度说明符,则默认数值精度由当前 NumberFormatInfo 对象的 NumberDecimalDigits 属性给定。
                Console.WriteLine("(25).ToString('F0'):" + (25).ToString("F0", Culinfo)); //25
                Console.WriteLine("(25).ToString('F1'):" + (25).ToString("F1", Culinfo)); //25.0
                Console.WriteLine("(25).ToString('F2'):" + (25).ToString("F2", Culinfo)); //25.00
                Console.WriteLine("*************************************************************");
               //【G 或 g】,根据数字类型以及是否存在精度说明符,数字会转换为定点或科学记数法的最紧凑形式。如果精度说明符被省略或为零,则数字的类型决定默认精度,如下表所示。
                //Byte 或 SByte:3
                //Int16 或 UInt16:5
                //Int32 或 UInt32:10
                //Int64 或 UInt64:19
                //Single:7
                //Double:15
                //Decimal:29
                //如果用科学记数法表示数字时指数大于 -5 而且小于精度说明符,则使用定点表示法;否则使用科学记数法。如果要求有小数点,并且忽略尾部零,则结果包含小数点。如果精度说明符存在,并且结果的有效数字位数超过指定精度,则通过舍入删除多余的尾部数字。
                //如果数字是 Decimal 并且省略精度说明符,上述规则存在一个例外。在这种情况下总使用定点表示法并保留尾部零。
                //使用科学记数法时,如果格式说明符是“G”,结果的指数带前缀“E”;如果格式说明符是“g”,结果的指数带前缀“e”。
                Console.WriteLine("(2.5).ToString('G'):" + (250).ToString("G", Culinfo)); //250
                Console.WriteLine("(2.5).ToString('G1'):" + (250).ToString("G1", Culinfo)); //3E+02
                Console.WriteLine("(2.5).ToString('G2'):" + (250).ToString("G2", Culinfo)); //2.5E+02
                Console.WriteLine("(2.5).ToString('G3'):" + (250).ToString("G3", Culinfo)); //250
                Console.WriteLine("*************************************************************");
               //【N 或 n】,数字转换为“-d,ddd,ddd.ddd…”形式的字符串,其中“-”表示负数符号(如果需要),“d”表示数字 (0-9),“,”表示数字组之间的千位分隔符,“.”表示小数点符号。实际的负数模式、数字组大小、千位分隔符以及小数分隔符分别由当前 NumberFormatInfo 对象的 NumberNegativePattern、NumberGroupSizes、NumberGroupSeparator 和 NumberDecimalSeparator 属性指定。
                //精度说明符指示所需的小数位数。如果忽略精度说明符,则默认数值精度由当前 NumberFormatInfo 对象的 NumberDecimalDigits 属性给定。
                Console.WriteLine("(250000).ToString('N'):" + (250000).ToString("N", Culinfo)); //250,000.00
                Console.WriteLine("(250000).ToString('N1'):" + (250000).ToString("N1", Culinfo)); //250,000.0
                Console.WriteLine("(250000).ToString('N3'):" + (250000).ToString("N3", Culinfo)); //250,000.000
                Console.WriteLine("*************************************************************");
                //【X 或 x】只有整型才支持此格式。数字转换为十六进制数字的字符串。格式说明符的大小写指示对大于 9 的十六进制数字使用大写字符还是小写字符。例如,使用“X”产生“ABCDEF”,使用“x”产生“abcdef”。
                //精度说明符指示结果字符串中所需的最少数字个数。如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。
                Console.WriteLine("(25).ToString('X'):" + (25).ToString("X", Culinfo));//19
                Console.WriteLine("(25).ToString('X4'):" + (25).ToString("X4", Culinfo));//19
                Console.WriteLine("(25).ToString('X8'):" + (25).ToString("X8", Culinfo));//19
                Console.WriteLine("*************************************************************");

               //【P 或 p】 按照 NumberFormatInfo..::.PercentNegativePattern 属性(若数字为负)或 NumberFormatInfo..::.PercentPositivePattern 属性(若数字为正)的定义,将数字转换为一个表示百分比的字符串。已转换的数字乘以 100 以表示为百分比。
                //精度说明符指示所需的小数位数。如果省略精度说明符,则使用当前 NumberFormatInfo 对象给定的默认数字精度。
                Console.WriteLine("(0.025).ToString('P'):" + (0.025).ToString("P", Culinfo));//2.50%
                Console.WriteLine("(0.025).ToString('P1'):" + (0.025).ToString("P1", Culinfo));//2.5%
                Console.WriteLine("(0.025).ToString('P2'):" + (0.025).ToString("P2", Culinfo));//2.50%
                Console.WriteLine("(0.025).ToString('P3'):" + (0.025).ToString("P3", Culinfo));//2.500%
                Console.WriteLine("*************************************************************");
                //【R 或 r】只有 Single 和 Double 类型支持此格式。往返过程说明符保证转换为字符串的数值再次被分析为相同的数值。使用此说明符格式化数值时,首先使用常规格式对其进行测试:Double 使用 15 位精度,Single 使用 7 位精度。如果此值被成功地分析回相同的数值,则使用常规格式说明符对其进行格式化。但是,如果此值未被成功地分析为相同数值,则它这样格式化:Double 使用 17 位精度,Single 使用 9 位精度。
                //尽管可以存在精度说明符,但它将被忽略。使用此说明符时,往返过程优先于精度。
                Console.WriteLine("(25.00).ToString('r'):" + (25.00).ToString("r", Culinfo)); //25
                Console.WriteLine("(25.00).ToString('r1'):" + (25.00).ToString("r1", Culinfo)); //25
                Console.WriteLine("(25.00).ToString('r2'):" + (25.00).ToString("r2", Culinfo)); //25


                Console.ReadKey();
            }
        }
    }

     

     时间进行格式化
     DateTime dt = DateTime.Now;  String date;  date = dt.ToString(“d“,DateTimeFormatInfo.InvariantInfo);   Response.Write(date + “﹤/br﹥“);//07/22/2009   date = dt.ToString(“G“, DateTimeFormatInfo.InvariantInfo);   Response.Write(date + “﹤/br﹥“);//07/22/2009 14:54:37   date = dt.ToString(“r“, DateTimeFormatInfo.InvariantInfo);  Response.Write(date + “﹤/br﹥“);//Wed, 22 Jul 2009 14:54:37 GMT   date = dt.ToString(“T“, DateTimeFormatInfo.InvariantInfo);  Response.Write(date + “﹤/br﹥“);//14:54:37   date = dt.ToString(“u“, DateTimeFormatInfo.InvariantInfo);  Response.Write(date + “﹤/br﹥“);//2009-07-22 14:54:37Z   date = dt.ToString(“dd-MM-yyyy“, DateTimeFormatInfo.InvariantInfo);  Response.Write(date + “﹤/br﹥“);//22-07-2009

    JAVA&NET技术QQ群号:456257217有问题的可以在群里面提问。
  • 相关阅读:
    Maximum Depth of Binary Tree
    Single Number
    Merge Two Sorted Lists
    Remove Nth Node From End of List
    Remove Element
    Remove Duplicates from Sorted List
    Add Two Numbers
    编译视频直播点播平台EasyDSS数据排序使用Go 语言 slice 类型排序的实现介绍
    RTMP协议视频直播点播平台EasyDSS在Linux系统中以服务启动报错can’t evaluate field RootPath in type*struct排查
    【解决方案】5G时代RTMP推流服务器/互联网直播点播平台EasyDSS实现360°全景摄像机VR直播
  • 原文地址:https://www.cnblogs.com/shiyh/p/15181570.html
Copyright © 2011-2022 走看看