整数でカルチャを表示したいのですが、"n"
数値形式では double 形式の出力が得られます。
ここに小さな例があります
int i = 10000;
Console.WriteLine(i.ToString("n", CultureInfo.CreateSpecificCulture("en-US")));
これは私に10,000.00
次のように出力したい10,000
文字列を変更するような回避策は必要ありません。
これを行う簡単な方法はありますか?
整数でカルチャを表示したいのですが、"n"
数値形式では double 形式の出力が得られます。
ここに小さな例があります
int i = 10000;
Console.WriteLine(i.ToString("n", CultureInfo.CreateSpecificCulture("en-US")));
これは私に10,000.00
次のように出力したい10,000
文字列を変更するような回避策は必要ありません。
これを行う簡単な方法はありますか?
n0
の代わりに使用n
します。
int i = 10000;
Console.WriteLine(i.ToString("n0", CultureInfo.CreateSpecificCulture("en-US")));
出力は次のようになります。
10,000
または、次を使用できます。
Console.WriteLine(i.ToString("N0"));
以下が表示される場合があります:標準の数値書式文字列
数値 ("N") 形式指定子。
数値 ("N") 書式指定子は、数値を "-d,ddd,ddd.ddd…" の形式の文字列に変換します。ここで、"-" は必要に応じて負の数値記号を示し、"d"は数字 (0 -9)、
ちなみに「N」も「n」も同じ
Console.WriteLine("{0:n0}",i, CultureInfo.CreateSpecificCulture("en-US"));
またはあなたの元に近い
Console.WriteLine(i.ToString("n0"), CultureInfo.CreateSpecificCulture("en-US"));
あなたはどんな数字を見たいですか?それは金額ですか?:
c (通貨) string.Format("{0:c}",i) $1,000,000.00
d (10 進数) string.Format("{0:d}",i) 1000000
e (科学) string.Format("{0:e}",i) 1.000000e+006
f (固定小数点) string.Format("{0:f}",i) 1000000.00
g (一般) string.Format("{0:g}",i) 1000000
n (セパレータあり)string.Format("{0:n}",i) 1,000,000.00
x 16 進数 string.Format("{0:x4}",i) f4240
によって出力される小数点以下の桁数"n"
は、プロパティによって指定されNumberFormatInfo.NumberDecimalDigits
ます。
これを変更してからCultureInfo
、すべてのToString
呼び出しで を使用して、文字列が一貫していることを確認できます。
var customCI = CultureInfo.CreateSpecificCulture("en-US");
customCI.NumberFormat.NumberDecimalDigits = 0;
Console.WriteLine(i.ToString("n", customCI));