2011-01-08 19 views
2

カンマ区切りの値に変換する必要がある整数があります。試しましたカンマ区切り整数(C)

string.Format("{0:n}", 999999) 

ただし、出力は999,999.00です。私は ".00"の部分を表示したくありません。どのようにこれを行うことができます。事前

+0

それは、カンマ区切りまたはちょうど何千も分離する必要がありますか?世界のすべての国が桁区切り記号としてカンマを使用するわけではありません。 – R0MANARMY

+0

「カンマ区切り値」という用語は、一般にファイル形式(.CSV)の名前であるため、桁区切り記号を使用して数値書式を記述すると混乱する可能性があります。 – Guffa

+0

**可能性のある重複:**この質問は既に以前に答えられました:[String.Format小数点なしの1000の区切り文字を使用する場合は整数、小数点の場合は先頭に0を設定してください](http://stackoverflow.com/q/1666346/240733) )。 – stakx

答えて

16

ありがとうございます精度として0を指定することができます。

string x = 999999.ToString("n0"); 
Console.WriteLine(x); 

:あなたは本当に大きなフォーマット文字列の中にそれを必要としない単純場合

string x = string.Format("{0:n0}", 999999); 
Console.WriteLine(x); 

以上これは、現在のカルチャにデフォルトの「1000セパレータ」を使用することに注意してください。あなたはコンマを使用することを強制したい場合は、おそらく明示的文化を指定する必要があります。

string x = 999999.ToString("n0", CultureInfo.InvariantCulture); 
Console.WriteLine(x); 

は、私は個人的な方法で「カンマ区切り」としてこれを記述しないだろう - 通常どのフォーマットを記述するために使用されます複数の異なる値を組み合わせています。私はちょうど "千単位のセパレーターとしてカンマを含む"これについて話したいと思います。

+0

「n」の後の0は小数点以下を0にしますか? – R0MANARMY

+0

@ R0MANARMY:この場合、はい。一般に、小数点以下の桁数を意味する "n"形式の "精度指定子"です。 –

+0

ありがとうございましたjon、あなたの答えは本と同じです:) –

0
int x = 999999; 
Console.WriteLine(x.ToString("###,###")); 
+0

カスタムセパレータが必要な場合は動作しません。したがって、現在のロケールによってはカンマではありません。 – Maxim

0

私はそれが最も普遍的かつ正確であると考え、この

decimal Rupees = 999999999900; 
string numberString = Rupees.ToString("00,00,000", 
    System.Globalization.CultureInfo.GetCultureInfo("hi-IN")); 
Response.Write(numberString); 
0

を試してみてください。

const int value = 1234567890; 

     NumberFormatInfo format = new NumberFormatInfo(); 
     format.NumberDecimalDigits = 0; // Int32 should not contain decimals. 
     format.NumberGroupSeparator = "'"; // Use any separator string here, for example comman as you requested. 
     format.NumberGroupSizes = new[] { 3 }; // Theoretically can be commented, but use it to specify number of digits in group directly. 

     Console.WriteLine(value.ToString("N", format)); 
関連する問題