このコードは、Charles Pettzoldの「Programming Windows Sixth Edition」の本からのものです。
public object Convert(object value, Type targetType, object parameter, string language)
{
return ((double)value).ToString("N0");
}
ToString("N0")
は、値をカンマ区切りで出力し、小数点を出力しないことになっています。ドキュメントに適切なToString
オーバーロードおよび"N0"
形式への参照が見つかりません。 .NETドキュメントの適切な場所を教えてください。
N
形式の例については、MSDNの following article
をご覧ください。これは Standard Numeric Format Strings
の記事でも説明されています。
関連する抜粋:
// Formatting of 1054.32179:
// N: 1,054.32
// N0: 1,054
// N1: 1,054.3
// N2: 1,054.32
// N3: 1,054.322
精度指定子が結果文字列の小数桁数を制御する場合、結果文字列は、無限に正確な結果に最も近い表現可能な結果に丸められた数値を反映します。 2つの等しく近い表現可能な結果がある場合:
- .NET Frameworkおよび.NET Core 2.0までの.NET Coreでは、ランタイムは最下位桁が大きい結果を選択します(つまり、MidpointRounding.AwayFromZeroを使用)。
- .NET Core 2.1以降では、ランタイムはさらに最下位桁の結果を選択します(つまり、MidpointRounding.ToEvenを使用)。
ここにドキュメントがあります:
http://msdn.Microsoft.com/en-us/library/dwhawy9k.aspx
数値( "N")形式指定子は、数値を "-d、ddd、ddd.ddd…"形式の文字列に変換します。ここで、 "-"は必要に応じて負の数値記号を示し、 "d"は数字(0 -9)...
そして、ここでデフォルト(2)について話します:
// Displays a negative value with the default number of decimal digits (2).
Int64 myInt = -1234;
Console.WriteLine( myInt.ToString( "N", nfi ) );
例のセクションのコメントとして、フォーマットのリスト here (Double.ToString()-MSDN-Article内)を見つけることができます。