C# .ToString() 格式化

來源:互聯網
上載者:User

轉自:http://www.cnblogs.com/bignjl/archive/2011/01/14/1935645.html

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,並且影響結果中的位元。任何包含一個以上字母字元(包括空白)的數字格式字串都被解釋為自訂數字格式字串。

發現網上只要你去百度Google搜,文章都是千篇一律,互相摘抄,抄襲。其中還有一些錯誤,所以這些代碼,以及我其他文章的代碼都是運行之後驗證的。

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 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.