2016-06-19 7 views
2

I C#で初心者だけど、私は、SQLサーバーに通貨フィールドがあり、そのフィールドのデータ型が、私はこの番号を持っ例えばbigintなぜbigint番号がC#CultureInfoで分割されないのですか?

です:

12598546 


私が表示したいですそのため

12,598,546 


私のC#コード:この形式では、それ

query_statusOfRPTOST[i].price_year.ToString("N0", CultureInfo.CreateSpecificCulture("es-US")) 


私のローカルPCでそのコードが正常に動作しますが、アプリケーションがサーバーで実行される場合、番号は次の形式で示されている:何が起こっている

12598,546 


?そして、私はその問題をどうやって解決するのですか?

答えて

1

あなたはこのCultureInfoNumberFormatを調べる場合は、次の表示されます。

var culture = CultureInfo.GetCultureInfo("es-US"); 
Console.WriteLine(string.Join(",",culture.NumberFormat.NumberGroupSizes)); 
//output: 3,0 

msdnに応じてどのような手段で、左側にあること小数点区切りの最初のグループには3桁の数字が含まれ、その他にはグルーピングされません。

あなたはgrouppingと形式で提示必要な値を取得したい場合は、次のいずれかを実行する必要があります。

  1. es-USに基づいており、[3]としてNumberGroupSizesを設定し、特定の文化を作成します。
  2. 別の既存のCultureInfoNumberGroupSizesと定義し、[3]としてください。たとえば、en-USです。
  3. 使用特殊な書式アリが最初ため

コード例を示唆するように、:秒

long a = 12598546; 
var culture = CultureInfo.CreateSpecificCulture("es-US"); 
culture.NumberFormat.NumberGroupSizes = new int[] { 3 }; 
Console.WriteLine(a.ToString("N0", culture)); 
// output 12,598,546 

コード例:

long a = 12598546; 
Console.WriteLine(a.ToString("N0", CultureInfo.GetCultureInfo("en-US"))); 
// output 12,598,546 
+0

にお待ちください、ということをテストするために待ってくださいテスト、ありがとう –

1

あなたはこのようString.Formatのを使用することができます。

string.Format("{0:#,###0}", query_statusOfRPTOST[i].price_year) 
+0

おかげで –

関連する問題