格式項都採用以下形式: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 |
Output |
c |
Currency |
{0:c} |
$1.42 |
-$12,400 |
d |
Decimal (Whole number) |
{0:d} |
System. |
-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. |
x |
Hexadecimal |
{0:x4} |
System. |
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
控制檯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.write 輸出字符的長度
用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()函數的格式一直沒怎麼注意。今天同事問起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));