2017-11-14 24 views
1

私たちはウェブアプリケーションを持っており、ユーザーはヨーロッパの異なる場所にいることができます。テキストボックス言語に応じて書式設定の通貨番号

5.5のようなこの5,5といくつかの書き込みなどの

少数の書き込み数は、我々は以下の

double priceOfITem = 0; 
double.TryParse(((TextBox)tabTest.Rows[0].Cells[3].Controls[0]).Text.Replace(".", ","), out priceOfITem) 

のようにその番号を使用しようとする。しかし、これは完全に間違っている55として出力を提供します。

私は5.5を入力し、私は5,5を入力すると、それは一部のユーザーは、5,5を入力することができ、いくつかはのcoutryに応じて、5.5を入力することができます55

に変換した場合に、この作品priceOfITem= Convert.ToDouble(string.Format(Thread.CurrentThread.CurrentCulture, "{0:#.##}",(((TextBox)tabTest.Rows[0].Cells[0].Controls[0]).Text)));

のように試してみましたどのようにこれを最善の方法で解決するのですか?

答えて

0

CultureInfoクラスで数値を解析することをお勧めします。ユーザーの文化を提出する必要があります。 g。ブラウザの設定(Get CultureInfo from current visitor and setting resources based on that?を参照)からC#の-partで

、次のスニペットを試してみてください。

string deNumber = "5,5"; 
string usNumber = "6.8"; 
Console.WriteLine(double.Parse(deNumber, new CultureInfo("de-DE"))); 
Console.WriteLine(double.Parse(usNumber, new CultureInfo("en-US"))); 

コンソール出力:

5.5 
6.8 
関連する問題