c#数値のフォーマット方法

7348 ワード

この例では、c#の数値をフォーマットする方法を分析します.皆さんの参考にしてください.具体的には以下の通りです.

int a = 12345678;
//   sring  
Label1.Text = string.Format("asdfadsf{0}adsfasdf",a);
Label2.Text = "asdfadsf"+a.ToString()+"adsfasdf";
Label1.Text = string.Format("asdfadsf{0:C}adsfasdf",a);//asdfadsf¥1,234.00adsfasdf
Label2.Text = "asdfadsf"+a.ToString("C")+"adsfasdf";//asdfadsf¥1,234.00adsfasdf
double b = 1234.12543;
int a = 12345678;

//      string    
Label1.Text = string.Format("asdfadsf{0:C}adsfasdf",b);//asdfadsf¥1,234.13adsfasdf
Label2.Text = "asdfadsf"+b.ToString("C")+"adsfasdf";//asdfadsf¥1,234.13adsfasdf
Label1.Text = string.Format("{0:C3}",b);//¥1,234.125
Label2.Text = b.ToString("C3");//¥1,234.125
Label1.Text = string.Format("{0:d}",a);//   --12345678
Label2.Text = b.ToString("d");//   --     ,    
Label1.Text = string.Format("{0:e}",a);//  --1.234568e+007
Label2.Text = b.ToString("e");//  --1.234125e+003
Label1.Text = string.Format("{0:f}",a);//   --12345678.00
Label2.Text = b.ToString("f");//   --1234.13
Label1.Text = string.Format("{0:n}",a);//  --12,345,678.00
Label2.Text = b.ToString("n");//  --1,234.13
Label1.Text = string.Format("{0:x}",a);//    --bc614e
Label2.Text = b.ToString("x");//16--        ,  
Label1.Text = string.Format("{0:g}",a);//      --12345678
Label2.Text = b.ToString("g");//      --1234.12543
Label1.Text = string.Format("{0:r}",a);//         --      ,  
Label2.Text = b.ToString("r");//         --1234.12543

double b = 4321.12543;
int a = 1234;

カスタムモード出力:

//"0"  :   ,    ,   
Label1.Text = string.Format("{0:000000}",a);// 001234
Label2.Text = string.Format("{0:000000}",b);// 004321

//"#"  :   ,    ,   
Label1.Text = string.Format("{0:#######}",a);// 1234
Label2.Text = string.Format("{0:#######}",b);// 4321
Label1.Text = string.Format("{0:#0####}",a);// 01234
Label2.Text = string.Format("{0:0#0000}",b);// 004321

//"."  :   
Label1.Text = string.Format("{0:000.000}",a);//1234.000
Label2.Text = string.Format("{0:000.000}",b);//4321.125
double b = 87654321.12543;
int a = 12345678;

//","  :    ,      
Label1.Text = string.Format("{0:0,00}",a);// 12,345,678
Label2.Text = string.Format("{0:0,00}",b);// 87,654,32
Label1.Text = string.Format("{0:0,}",a);// 12346
Label2.Text = string.Format("{0:0,}",b);// 87654
Label1.Text = string.Format("{0:0,,}",a);// 12
Label2.Text = string.Format("{0:0,,}",b);// 88
Label1.Text = string.Format("{0:0,,,}",a);// 0
Label2.Text = string.Format("{0:0,,,}",b);// 0

//"%"  :      
Label1.Text = string.Format("{0:0%}",a);// 1234567800%
Label2.Text = string.Format("{0:#%}",b);// 8765432113%
Label1.Text = string.Format("{0:0.00%}",a);// 1234567800.00%
Label2.Text = string.Format("{0:#.00%}",b);// 8765432112.54%

//"abc"  :         
Label1.Text = string.Format("{0:'  '0}",a);//   12345678
Label2.Text = string.Format("{0:  0}",b);//   87654321

//"""  :  1       ,      "n 
Label1.Text = string.Format("""  !""");// "  !"
Label2.Text = string.Format("[url=file://""c""books""new""we.asp]""c""books""new""we.asp");//"c"books"new"we.asp

//"@"  :         ,
Label1.Text = string.Format(@"""  !"""); // "  !"   "          
Label2.Text = string.Format(@""c"books"new"we.asp");//"c"books"new"we.asp

Label1.Text = String.Format("{0:yyyy -mm -dd ",DateTime.Now);

日付変換:
異なる表示効果を達成するために、時間を変換する必要がある場合があります.デフォルトのフォーマットは:2007-01-03 14:33:34で、他のフォーマットに変換するにはDateTimeを使用します.ToStringの方法(String,IFOrmatProvider)は、以下のようになります.

using System;
using System.Globalization;
String format="D";
DateTime date=DataTime,Now;
Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));


結果出力
Thursday, June 16, 2005
パラメータformatフォーマットの詳細:
フォーマット文字関連属性/説明d ShortDatePattern D LongDatePattern f完全日付と時間(長い日付と短い時間)F FullDateTimePattern(長い日付と長い時間)g通常(短い日付と短い時間)G通常(短い日付と長い時間)m、M MonthDayPattern r、R RFC 123 Pattern s現地時間のSortableDateTimePatternを使用(ISO 8601ベース)t ShortTimePattern T LongTimePattern u UniversalSortableDateTimePattern汎用時間を表示するためのフォーマットU汎用時間の完全な日付と時間(長い日付と長い時間)y,Y YearMonthPattern
次の表に、カスタム・モードを作成するためにマージできるモードを示します.これらのモードは大文字と小文字を区別します.例えば、「MM」は認識されるが、「mm」は認識されない.カスタム・モードに空白文字または一重引用符で囲まれた文字が含まれている場合、出力文字列ページにもこれらの文字が含まれます.フォーマット・モードの一部として定義されていない文字またはフォーマット文字として定義されていない文字は、その元の意味でコピーされます.
フォーマット・モードは、d月のある日を示します.1桁の日付に先頭ゼロはありません.dd月のある日.1桁の日付には先頭ゼロがあります.ddd週のある日の略語名は、AbbreviatedDayNameで定義されます.dddddd週のある日の完全な名前で、DayNameで定義されます.M月の数字.1桁の月には先頭ゼロがありません.MM月の数字.1桁の月にはゼロの先頭があります.MMM月の略称で、AbbreviatedMonthNameで定義されています.MMMMMM月のフルネームは、MonthNameで定義されています.y紀元の年は含まれません.紀元を含まない年が10未満の場合は、先頭ゼロを持たない年が表示されます.yyには紀元の年は含まれていません.紀元を含まない年が10未満の場合は、ゼロの先頭を持つ年が表示されます.yyyyには、紀元の4桁の年が含まれています.gg時期または紀元.フォーマットする日付に関連する期間または紀元文字列がない場合は、このモードは無視されます.h 12時間制の時間.1桁の時間数に先頭ゼロはありません.hh 12時間制の時間.1桁の時間数には先頭ゼロがあります.H 24時間制の時間.1桁の時間数に先頭ゼロはありません.HH 24時間制の時間.1桁の時間数には先頭ゼロがあります.m分です.1桁の分数に先頭ゼロはありません.mm分です.1桁の分数には先頭ゼロがあります.s秒です.1桁の秒数に先頭ゼロはありません.ss秒.1桁の秒数には先頭ゼロがあります.f秒の小数精度は1ビットである.残りの数字は切り捨てられた.ff秒の小数精度は2桁です.残りの数字は切り捨てられた.fff秒の小数精度は3桁である.残りの数字は切り捨てられた.ffff秒の小数精度は4ビットである.残りの数字は切り捨てられた.fffff秒の小数精度は5ビットである.残りの数字は切り捨てられた.ffffff秒の小数精度は6ビットである.残りの数字は切り捨てられた.fffffff秒の小数精度は7ビットである.残りの数字は切り捨てられた.t AMDesignatorまたはPMDesignatorで定義されているAM/PMインジケータの最初の文字(存在する場合)です.ttは、AMDesignatorまたはPMDesignatorで定義されているAM/PMインジケータ(存在する場合)です.zタイムゾーンオフセット量(「+」または「-」の後に時間のみ).1桁の時間数に先頭ゼロはありません.たとえば、太平洋標準時間は「-8」です.. zzタイムゾーンオフセット(「+」または「-」の後には時間のみ).1桁の時間数には先頭ゼロがあります.たとえば、太平洋標準時間は「-08」です.zzzフルタイムゾーンオフセット(「+」または「-」の後には時間と分).1桁の時間と分には先頭ゼロがあります.たとえば、太平洋標準時間は「-08:00」です.. : TimeSeparatorで定義されているデフォルトの時間区切り記号./DateSeparatorで定義したデフォルトの日付区切り記号.%cここで、cはフォーマット・モード(単独で使用する場合)である.フォーマット・モードがオリジナル文字または他のフォーマット・モードと結合されている場合、「%」文字は省略できる.「cここで、cは任意の文字である.オリジナルの文字に従って表示される.反スラッシュ文字を表示するには、「」「」を使用する.
カスタム・モードの作成に使用できるのは、上記の2番目のテーブルにリストされているフォーマット・モードのみです.最初のテーブルにリストされた標準フォーマット文字は、カスタムモードを作成するために使用できません.カスタムモードの長さは少なくとも2文字です.たとえば、
DateTime.ToString(「d」)はDateTime値を返します.「d」は標準的な短い日付モードである.DateTime.ToString("%d")は月のある日を返します.「%d」はカスタムモードです.DateTime.ToString(「d」)は、空白の文字が続く月のある日を返します.「d」はカスタムモードである.
便利なのは、上のパラメータを任意に組み合わせることができて、しかも間違いがなくて、多く試して、きっとあなたの必要な時間のフォーマットを見つけることができます2005年06月のこのようなフォーマットを得る時間はこのように書くことができます:date.ToString(「yyyyy年MM月」,DateTimeFormatInfo.InvariantInfo)
本稿で述べたことが皆さんのC#プログラム設計に役立つことを願っています.