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

C# .ToString() 格式化的更多相关文章

  1. DateTime.ToString格式化日期,使用DateDiff方法获取日期时间的间隔数

    一:DateTime.ToString格式化日期 二:代码 using System; using System.Collections.Generic; using System.Component ...

  2. ToString() 格式化

    c# ToString() 格式化字符串  格式化数值:有时,我们可能需要将数值以一定的格式来呈现,就需要对数值进行格式化.我们使用格式字符串指定格式.格式字符串采用以下形式:Axx,其中 A 为格式 ...

  3. asp.net ToString() 格式化字符串

    c# ToString() 格式化字符串  格式化数值:有时,我们可能需要将数值以一定的格式来呈现,就需要对数值进行格式化.我们使用格式字符串指定格式.格式字符串采用以下形式:Axx,其中 A 为格式 ...

  4. C# Tostring 格式化输出字符串全解

    C 货币 2.5.ToString("C") ¥2.50 D 十进制数 .ToString("D5") E 科学型 .ToString("E" ...

  5. .tostring()格式化大全

    C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString ...

  6. tostring格式化输出

    C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString ...

  7. C# tostring 格式化输出 (转)

    C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString ...

  8. C#中string.Format()和ToString()格式化方法

    C#数字格式化输出是我们在编程中经常需要处理的事情,那么这里向你介绍了一些C#数字格式化输出的例子,这样就会方便你来选择和比较,什么方式是比较适合自己项目的. int a = 12345678; C# ...

  9. [C#]ToString("##")格式化用法案例一:自动编码单据流水码

    之前的写的自动编码单据流水码是写在存储过程或者函数中的,今天用程序写一个发现TOSTRING可以格式化方便. /// <summary> /// 年月日+两位流水码 /// </su ...

随机推荐

  1. JAVA-面向对象-继承

    继承   (关键字extends   ) (关键字 final 表示终态,在父类前加 final 则父类无法被继承,加在方法前则方法不能被重写或者覆盖,加在变量前则变量只能被赋值一次) 1.权限修饰符 ...

  2. 20145207 《Java程序设计》第二周学习总结

    开源中国的代码托管 不算调查问卷的话,这是第二篇博客,怎么说呢……感觉好麻烦!哈哈哈哈!不过也就这样吧.按照同学传达的老师的意思就是“写博客就是在重复一天的所学,虽然可能会花一定的时间,但是对于自己是 ...

  3. 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。

    在用asp.net MVC3 的MusicStore时候 Edit某个数据项时提示下面的错误: 存储区更新.插入或删除语句影响到了意外的行数(0).实体在加载后可能被修改或删除.刷新 ObjectSt ...

  4. Android2.2快速入门 zz

    http://www.cnblogs.com/over140/archive/2010/09/27/1836567.html 前言 这是前段时间用于公司Android入门培训的资料,学习Android ...

  5. nginx在windwos中的使用

    本文章参考了 nginx for windows的介绍:http://nginx.org/en/docs/windows.html 你从官网上下载到的是一个 zip 格式的压缩包,首先要把压缩包解压. ...

  6. mysql创建视图

    CREATE ALGORI`sync_user`CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER V ...

  7. yii2的windows下安装及前期步骤

    Yii2的安装(以生成basic目录为例) 第一步:服务器安装好后生成www目录,在该目录下新建yii2目录,把下载的compser.phar包放在该目录下 第二步:dos命令下进入项目目录 第三步: ...

  8. 各种类型的Writable(Text、ByteWritable、NullWritable、ObjectWritable、GenericWritable、ArrayWritable、MapWritable、SortedMapWritable)转

    java原生类型 除char类型以外,所有的原生类型都有对应的Writable类,并且通过get和set方法可以他们的值. IntWritable和LongWritable还有对应的变长VIntWri ...

  9. ASP.NET MVC 返回JsonResult序列化内容超出最大限制报错的解决办法

    在使用MVC的时候我们经常会在Controller的Action方法中返回JsonResult对象,但是有时候你如果序列化的对象太大会导致JsonResult从Controller的Action返回后 ...

  10. NOIP200407合唱队形+最长上升子序列O(n^2)详解

    合唱队形解题报告 2016-05-12   4:30——6:45 NOIP200407合唱队形 难度级别:A: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:20000 ...