Console.WriteLine()函数中{}输出格式详解 (转载)

格式项都采用以下形式:html

{index[,alignment][:formatString]}   git

 

其中"index"指索引占位符,这个确定都知道;asp.net

",alignment"按字面意思显然是对齐方式,以","为标记;ide

":formatString"就是对输出格式的限定,以":"为标记。函数

 

alignment:可选,是一个带符号的整数,指示首选的格式化字段宽度。若是“对齐”值小于格式化字符串的长度,“对齐”会被忽略,而且使用格式化字符串的长度做为字段宽度。若是“对齐”为正数,字段的格式化数据为右对齐;若是“对齐”为负数,字段的格式化数据为左对齐。若是须要填充,则使用空白。若是指定“对齐”,就须要使用逗号。url

 

formatString:由标准或自定义格式说明符组成.spa

 

下表是从网上得来:.net

 

字符orm

说明htm

示例

输出

C

        货币

string.Format("{0:C3}", 2)

$2.000

D

      十进制

string.Format("{0:D3}", 2)

002

E

   科学计数法

1.20E+001

1.20E+001

G

       常规

string.Format("{0:G}", 2)

2

N

 用分号隔开的数字

string.Format("{0:N}", 250000)

250,000.00

X

     十六进制

string.Format("{0:X000}", 12)

C

 

 

string.Format("{0:000.000}", 12.2)

012.200

 

 

Specifier

Type

Format

Output
(Passed
Double 1.42)

Output
(Passed
Int -12400)

c

Currency

{0:c}

$1.42

-$12,400

d

Decimal (Whole number)

{0:d}

System.
FormatException

-12400

e

Scientific

{0:e}

1.420000e+000

-1.240000e+004

f

Fixed point

{0:f}

1.42

-12400.00

g

General

{0:g}

1.42

-12400

n

Number with commas for thousands

{0:n}

1.42

-12,400

r

Round trippable

{0:r}

1.42

System.
FormatException

x

Hexadecimal

{0:x4}

System.
FormatException

cf90

 

 

Specifier

Type

Example (Passed System.DateTime.Now)

d

Short date

10/12/2002

D

Long date

December 10, 2002

t

Short time

10:11 PM

T

Long time

10:11:29 PM

f

Full date & time

December 10, 2002 10:11 PM

F

Full date & time (long)

December 10, 2002 10:11:29 PM

g

Default date & time

10/12/2002 10:11 PM

G

Default date & time (long)

10/12/2002 10:11:29 PM

M

Month day pattern

December 10

r

RFC1123 date string

Tue, 10 Dec 2002 22:11:29 GMT

s

Sortable date string

2002-12-10T22:11:29

u

Universal sortable, local time

2002-12-10 22:13:50Z

U

Universal sortable, GMT

December 11, 2002 3:13:50 AM

Y

Year month pattern

December, 2002

 

 

Specifier

Type

Example

Example Output

dd

Day

{0:dd}

10

ddd

Day name

{0:ddd}

Tue

dddd

Full day name

{0:dddd}

Tuesday

f, ff, ...

Second fractions

{0:fff}

932

gg, ...

Era

{0:gg}

A.D.

hh

2 digit hour

{0:hh}

10

HH

2 digit hour, 24hr format

{0:HH}

22

mm

Minute 00-59

{0:mm}

38

MM

Month 01-12

{0:MM}

12

MMM

Month abbreviation

{0:MMM}

Dec

MMMM

Full month name

{0:MMMM}

December

ss

Seconds 00-59

{0:ss}

46

tt

AM or PM

{0:tt}

PM

yy

Year, 2 digits

{0:yy}

02

yyyy

Year

{0:yyyy}

2002

zz

Timezone offset, 2 digits

{0:zz}

-05

zzz

Full timezone offset

{0:zzz}

-05:00

:

Separator

{0:hh:mm:ss}

10:43:20

/

Separator

{0:dd/MM/yyyy}

10/12/2002

 

示例:

 

// Console.WriteLine 中各类数据格式的输出

            Console.WriteLine("{0, 8 :C}", 2);     // $2.00

            Console.WriteLine("{0, 8 :C3}", 2);    // $2.000

            Console.WriteLine("{0 :D3}", 2);       // 002

            Console.WriteLine("{0 :E}", 2);        // 2.000000E+000

            Console.WriteLine("{0 :G}", 2);        // 2

            Console.WriteLine("{0 :N}", 2500000.00);    // 2,500,00.00

            Console.WriteLine("{0 :x4}", 12);      // 000c

            Console.WriteLine("{0, 2 :x}", 12);    //  c

            Console.WriteLine("{0 :000.000}", 12.23);   // 012.230

            Console.WriteLine("{0 :r}", 15.62);    // 15.62

 

            Console.WriteLine("{0 :d}", System.DateTime.Now);    // 2012-3-27

            Console.WriteLine("{0 :D}", System.DateTime.Now);    // 2012年3月27日

 

            Console.WriteLine("{0 :t}", System.DateTime.Now);    // 11:43

            Console.WriteLine("{0 :T}", System.DateTime.Now);    // 11:43:34

 

            Console.WriteLine("{0 :f}", System.DateTime.Now);    // 2012年3月27日 11:43

            Console.WriteLine("{0 :F}", System.DateTime.Now);    // 2012年3月27日 11:43:34

 

            Console.WriteLine("{0 :g}", System.DateTime.Now);    // 2012-3-27 11:43

            Console.WriteLine("{0 :G}", System.DateTime.Now);    // 2012-3-27 11:43:34

 

            Console.WriteLine("{0 :M}", System.DateTime.Now);    // 3月27日

            Console.WriteLine("{0 :r}", System.DateTime.Now);// Tue, 27 Mar 2012 11:43:34 GMT

            Console.WriteLine("{0 :s}", System.DateTime.Now);    // 2012-03-27T11:43:34

            Console.WriteLine("{0 :u}", System.DateTime.Now);    // 2012-03-27 11:43:34Z

            Console.WriteLine("{0 :U}", System.DateTime.Now);    // 2012年3月27日 3:43:34

            Console.WriteLine("{0 :Y}", System.DateTime.Now);    // 2012年3月

 

            Console.WriteLine("{0 :dd}", System.DateTime.Now);   // 27

            Console.WriteLine("{0 :ddd}", System.DateTime.Now);  // 二

            Console.WriteLine("{0 :dddd}", System.DateTime.Now); // 星期二

 

            Console.WriteLine("{0 :f}", System.DateTime.Now);    // 2012年3月27日 11:46

            Console.WriteLine("{0 :ff}", System.DateTime.Now);   // 18

            Console.WriteLine("{0 :fff}", System.DateTime.Now);  // 187

            Console.WriteLine("{0 :ffff}", System.DateTime.Now); // 1875

            Console.WriteLine("{0 :fffff}", System.DateTime.Now); // 18750

 

            Console.WriteLine("{0 :gg}", System.DateTime.Now);   // 公元

            Console.WriteLine("{0 :ggg}", System.DateTime.Now);  // 公元

            Console.WriteLine("{0 :gggg}", System.DateTime.Now); // 公元

            Console.WriteLine("{0 :ggggg}", System.DateTime.Now);     // 公元

            Console.WriteLine("{0 :gggggg}", System.DateTime.Now);    // 公元

 

            Console.WriteLine("{0 :hh}", System.DateTime.Now);   // 11

            Console.WriteLine("{0 :HH}", System.DateTime.Now);   // 11

 

            Console.WriteLine("{0 :mm}", System.DateTime.Now);   // 50

            Console.WriteLine("{0 :MM}", System.DateTime.Now);   // 03

 

            Console.WriteLine("{0 :MMM}", System.DateTime.Now);  // 三月

            Console.WriteLine("{0 :MMMM}", System.DateTime.Now); // 三月

 

            Console.WriteLine("{0 :ss}", System.DateTime.Now);   // 43

            Console.WriteLine("{0 :tt}", System.DateTime.Now);   // 上午

 

            Console.WriteLine("{0 :yy}", System.DateTime.Now);   // 12

            Console.WriteLine("{0 :yyyy}", System.DateTime.Now); // 2012

            Console.WriteLine("{0 :zz}", System.DateTime.Now);   // +08

            Console.WriteLine("{0 :zzz}", System.DateTime.Now);  // +08:00

            Console.WriteLine("{0 :hh:mm:ss}", System.DateTime.Now);  // 11:43:34

            Console.WriteLine("{0 :dd/MM/yyyy}", System.DateTime.Now); // 27-03-2012

 

 

 

Console.WriteLine()格式化输出小记

控制台I/O显示格式化的结果(转)http://blog.sina.com.cn/s/blog_66770c850100xgko.html

 

 

(1)格式字符串(不考虑大小写,除了e/E)

  C:货币格式 C2:货币格式,精度为两位小数。 eg:$73.23

  D:十进制格式  E:科学计数法  

   System.Console.Write("{0,5:D2}", i);表示宽度为5,精度为2,不足补0。
   D表示是整数,其它的标准数字格式字符串有:
   C 本地货币格式
   E 科学记数法(指数)格式
   F 定点(小数)格式
   G 常规格式
   N 数字格式
   P 百分数格式
   X 十六进制格式
   R 往返过程

   还有一种方式是使用占位符:
   double a = 1.2345;
   System.Console.WriteLine("{0:###.000000}", a);
   结果为1.234500
   “#”号位置上有字符就输出,没有则不输出,0的位置上有字符就输出,没有就填0。
   再来看个例子: 货币格式
   decimal m = 168.24m;
   decimal n = 45.8m;
   System.Console.WriteLine("{0,8:C2} {1,8:C2} {2,8:C2}", m, n,m-n);
输出结果为
¥168.24
¥45.80
¥122.44
前面有一个空格,由于宽度是8,小数点后保留两位小数,不足补0。
它是右对齐的,咱们能够换成左对齐:
¥168.24
¥45.80
¥122.44
“¥”符号是自动加上去的,咱们这里选择的是货币格式,它会自动选择适当的符号,RMB固然是¥,要修改能够去控制面板里面设置语言和货币。
以上是数字的格式,另外日期和时间格式字符串也是比较经常使用的。
static void Main(string[] args)
{
DateTime date1 = new DateTime(2010, 5, 22,19,50,28); //2010年5月22日19点50分28秒
Console.WriteLine(date1.ToString("f",CultureInfo.CreateSpecificCulture("zh-CN")));
}
D 长日期模式 2010年5月22日
f 完整日期/时间模式(短期) 2010年5月22日 19:50
F 完整日期/时间模式(长时间) 2010年5月22日 19:50:28
g 常规日期/时间模式(短期) 2010/5/22 19:50
G 常规日期/时间模式(长时间) 2010/5/22 19:50:28
M或m 月日模式 5月22日
t 短期模式 19:50
T 长时间模式 19:50:28
u 通用的可排序日期/时间模式 2010-05-22 19:50:28Z
U 通用完整日期/时间模式 2010年5月22日 11:50:28
Y或y 年月模式 2010年5月
还能够自定义格式,
{
DateTime date1 = new DateTime(2010, 5, 22,19,50,28);
Console.WriteLine(date1.ToString("yyyy年MM月dd日 tt hh:mm:ss.FF",CultureInfo.CreateSpecificCulture("zh-CN")));
}
输出为2010年05月22日 下午 07:50:28
(2)输出写法

{索引,宽度:格式}

宽度:正值右对齐,负值左对齐

一般为:{索引},{索引:格式},{索引,宽度,格式}

(3)如下代码已编译经过:

using System;
namespace NS
{
    class CA
    {
        public static void Main()
        {
            decimal i = 940.23m;
            decimal j = 73.70m;
            Console.WriteLine("{0,9:C2}\n+{1,8:C2}\n----------\n{2,9:C2}",i,j,i+j);
        }
    }
}

结果:Console.WriteLine()格式化输出小记

 

 调整 console.write 输出字符的长度

http://social.microsoft.com/Forums/id-ID/visualcshartzhchs/thread/392aa75d-7e16-4a56-97fa-9ace52e63888

 

用string.Format或者Console.Write方法的格式化:

{序号索引,M}……

M>0:左对齐(右边留出空格)。

M<0:右对齐(左边留出空格)。

如:

class Program
    {
        static void Main(string[] args)
        {
            //行
            for (int row 1; row 10; row++)
            {

               //列
                for (int col 1; col <=row; col++)
                {
                    Console.Write("{0}*{1}={2,-5}", row, col, row col);
                }
                Console.WriteLine();
            }
        }
    }


  

Console.WriteLine()函数中{}输出格式详解(C#)

http://blog.csdn.net/xrongzhen/article/details/5477075

 

Console.WriteLine()函数的格式一直没怎么注意。今天同事问起Console.WriteLine({0:D3},a)的意义,突然发现不知道D表明什么意义。之前觉得{0,4}是指第一个变量输出时占8位,今天查了一下,发现也并不彻底正确。


其中格式项都采用以下形式:

{index[,alignment][:formatString]}   

 

其中"index"指索引占位符,这个确定都知道;

",alignment"按字面意思显然是对齐方式,以","为标记;

":formatString"就是对输出格式的限定,以":"为标记。

 

alignment:可选,是一个带符号的整数,指示首选的格式化字段宽度。若是“对齐”值小于格式化字符串的长度,“对齐”会被忽略,而且使用格式化字符串的长度做为字段宽度。若是“对齐”为正数,字段的格式化数据为右对齐;若是“对齐”为负数,字段的格式化数据为左对齐。若是须要填充,则使用空白。若是指定“对齐”,就须要使用逗号。

 

formatString:由标准或自定义格式说明符组成.

 

C#字符输出格式控制

http://cancait.blog.163.com/blog/static/21335744200711933345140/

C#的String.Format举例stringstr1 =string.Format("{0:N1}",56789);                //result: 56,789.0stringstr2 =string.Format("{0:N2}",56789);                //result: 56,789.00stringstr3 =string.Format("{0:N3}",56789);                //result: 56,789.000stringstr8 =string.Format("{0:F1}",56789);                //result: 56789.0stringstr9 =string.Format("{0:F2}",56789);                //result: 56789.00stringstr11 =(56789 / 100.0).ToString("#.##");            //result: 567.89stringstr12 =(56789 / 100).ToString("#.##");              //result: 567C 或 c货币Console.Write("{0:C}", 2.5);   //$2.50Console.Write("{0:C}", -2.5); //($2.50)D 或 d十进制数Console.Write("{0:D5}", 25);   //00025E 或 e科学型Console.Write("{0:E}", 250000);   //2.500000E+005F 或 f固定点Console.Write("{0:F2}", 25);   //25.00Console.Write("{0:F0}", 25);   //25G 或 g常规Console.Write("{0:G}", 2.5);   //2.5N 或 n数字Console.Write("{0:N}", 2500000);   //2,500,000.00X 或 x十六进制Console.Write("{0:X}", 250); /******************************************************************************/   ASP.NET设置数据格式与String.Format使用总结(引) {0:d} YY-MM-DD{0:p} 百分比00.00%{0:N2} 12.68{0:N0} 13{0:c2} $12.68{0:d} 3/23/2003{0:T} 12:00:00 AM{0:男;;女} DataGrid-数据格式设置表达式 数据格式设置表达式 .NET Framework 格式设置表达式,它在数据显示在列中以前先应用于数据。此表达式由可选静态文本和用如下格式表示的格式说明符组成: {0:format specifier}零是参数索引,它指示列中要格式化的数据元素;所以,一般用零来指示第一个(且惟一的)元素。format specifier 前面有一个冒号 (:),它由一个或多个字母组成,指示如何格式化数据。可使用的格式说明符取决于要格式化的数据类型:日期、数字或其余类型。下表显示了不一样数据类型的格式设置表达式的示例。有关格式设置表达式的更多信息,请参见格式化类型。格式设置表达式 应用于此数据类型 说明 Price: {0:C}numeric/decimal显示“Price:”,后跟以货币格式表示的数字。货币格式取决于经过 Page 指令或 Web.config 文件中的区域性属性指定的区域性设置。 {0:D4}integer(不能和小数一块儿使用。) 在由零填充的四个字符宽的字段中显示整数。 {0:N2}%numeric显示精确到小数点后两位的数字,后跟“%”。 {0:000.0}numeric/decimal四舍五入到小数点后一位的数字。不到三位的数字用零填充。 {0:D}date/datetime长日期格式(“Thursday, August 06, 1996”)。日期格式取决于页或 Web.config 文件的区域性设置。 {0:d}date/datetime短日期格式(“12/31/99”)。 {0:yy-MM-dd}date/datetime用数字的年-月-日表示的日期(96-08-06)。 只读 当此列处于编辑模式时,该列中的数据是否显示在可编辑的控件中。2006-02-22 | asp.net数据格式的Format-- DataFormatString咱们在呈现数据的时候,不要将未经修饰过的数据呈现给使用者。例如金额一万元,若是咱们直接显示「10000」,可能会致使使用者当作一千或十万,形成使用者阅读数据上的困扰。若咱们将一万元润饰后输出为「NT$10,000」,不但让使比较好阅读,也会让使用者减小犯错的机会。下列画面为润饰过的结果:上述数据除了将DataGrid Web 控件以颜色来区隔记录外,最主要将日期、单价以及小计这三个计字段的数据修饰的更容易阅读。要修饰字段的输出,只要设定字段的DataFormatString 属性便可;其使用语法以下:DataFormatString="{0:格式字符串}"咱们知道在DataFormatString 中的 {0} 表示数据自己,而在冒号后面的格式字符串表明所们但愿数据显示的格式;另外在指定的格式符号后能够指定小数所要显示的位数。例如原来的数据为「12.34」,若格式设定为 {0:N1},则输出为「12.3」。其经常使用的数值格式以下表所示:格式字符串 资料 结果"{0:C}" 12345.6789 $12,345.68"{0:C}" -12345.6789 ($12,345.68)"{0:D}" 12345 12345"{0:D8}" 12345 00012345"{0:E}" 12345.6789 1234568E+004"{0:E10}" 12345.6789 1.2345678900E+004"{0:F}" 12345.6789 12345.68"{0:F0}" 12345.6789 12346"{0:G}" 12345.6789 12345.6789"{0:G7}" 123456789 1.234568E8"{0:N}" 12345.6789 12,345.68"{0:N4}" 123456789 123,456,789.0000"Total: {0:C}" 12345.6789 Total: $12345.68其经常使用的日期格式以下表所示:格式 说明 输出格式d 精简日期格式 MM/dd/yyyyD 详细日期格式 dddd, MMMM dd, yyyyf 完整格式 (long date + short time) dddd, MMMM dd, yyyy HH:mmF完整日期时间格式(long date + long time)dddd, MMMM dd, yyyy HH:mm:ssg 通常格式 (short date + short time) MM/dd/yyyy HH:mmG 通常格式 (short date + long time) MM/dd/yyyy HH:mm:ssm,M 月日格式 MMMM dds 适中日期时间格式 yyyy-MM-dd HH:mm:sst 精简时间格式 HH:mmT 详细时间格式 HH:mm:ssstring.format格式结果 String.Format(C) Currency: . . . . . . . . ($123.00)(D) Decimal:. . . . . . . . . -123(E) Scientific: . . . . . . . -1.234500E+002(F) Fixed point:. . . . . . . -123.45(G) General:. . . . . . . . . -123(N) Number: . . . . . . . . . -123.00(P) Percent:. . . . . . . . . -12,345.00 %(R) Round-trip: . . . . . . . -123.45(X) Hexadecimal:. . . . . . . FFFFFF85(d) Short date: . . . . . . . 6/26/2004(D) Long date:. . . . . . . . Saturday, June 26, 2004(t) Short time: . . . . . . . 8:11 PM(T) Long time:. . . . . . . . 8:11:04 PM(f) Full date/short time: . . Saturday, June 26, 2004 8:11 PM(F) Full date/long time:. . . Saturday, June 26, 2004 8:11:04 PM(g) General date/short time:. 6/26/2004 8:11 PM(G) General date/long time: . 6/26/2004 8:11:04 PM(M) Month:. . . . . . . . . . June 26(R) RFC1123:. . . . . . . . . Sat, 26 Jun 2004 20:11:04 GMT(s) Sortable: . . . . . . . . 2004-06-26T20:11:04(u) Universal sortable: . . . 2004-06-26 20:11:04Z (invariant)(U) Universal sortable: . . . Sunday, June 27, 2004 3:11:04 AM(Y) Year: . . . . . . . . . . June, 2004(G) General:. . . . . . . . . Green(F) Flags:. . . . . . . . . . Green (flags or integer)(D) Decimal number: . . . . . 3(X) Hexadecimal:. . . . . . . 00000003说明: String.Format 将指定的 String 中的每一个格式项替换为相应对象的值的文本等效项。 例子: int iVisit = 100; string szName = "Jackfled"; Response.Write(String.Format("您的账号是:{0} 。访问了 {1} 次.", szName, iVisit));

相关文章
相关标签/搜索