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));

相關文章
相關標籤/搜索