5

asp.netアプリケーションでドイツ語のUIカルチャを使用しています。ドロップダウンで選択した言語に基づいてアプリケーションのUIカルチャを変更しています。ドロップダウンで選択したインデックスの変更時に、このコードを使用しています

Thread.CurrentThread.CurrentCulture = new CultureInfo(this.lstLanguage.SelectedValue);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(this.lstLanguage.SelectedValue);

ドロップダウンは以下のとおりです

<asp:DropDownList cssClass="ddllanguage" ValidationGroup="b" runat="server" ID="lstLanguage" AutoPostBack="True"  OnSelectedIndexChanged="LstLanguage_SelectedIndexChanged" meta:resourcekey="lstLanguage">                    
  <asp:ListItem Value="en-US" Text="English" meta:resourcekey="ListItemResource2" ></asp:ListItem>
  <asp:ListItem Value="de-DE" Text="Deutsch" meta:resourcekey="ListItemResource3"></asp:ListItem>
</asp:DropDownList>

私の問題は、言語をde-DEに変更した後、アプリケーションのすべての10進数値がコンマとして変更され、5.12のようなすべての10進数が5,12になり、すべての10進数値がコンマに変更されることです。カンマなしでそのまま10進値を取得する方法。

4

4 に答える 4

7

Thread.CurrentUICultureユーザーインターフェイスで使用することを目的としており、テキストや向きなどを表示するために使用される言語です。
Thread.CurrentCultureものの解析/フォーマットに使用することを目的としています。日付と時刻、数値、文字列の比較(たとえば)。

UI言語のみを変更したい場合(および他のすべてをWebサーバーの文化に合わせて維持したい場合)は、のみを変更する必要がありますThread.CurrentUICulture

于 2012-06-29T10:29:14.413 に答える
5

以下のコードに従って数値形式情報を変更できます

Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";

カルチャごとに 10 進数値を解析するためのコードの下を試してください。

string str = "50,3";
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
double d = double.Parse(str, Thread.CurrentThread.CurrentCulture.NumberFormat);

結果d = 50.3が得られます

于 2012-06-29T10:32:43.713 に答える
4

ドイツの文化では、Decimalは「、」で表されます

ドイツの文化では「。」を使用しています。グループ区切り文字として、小数点記号として「、」

wikiリンクを参照してください

于 2012-06-29T10:29:04.293 に答える
1

この動作は、ドイツ語では正しいです。ただし、 を使用することもできます。XML へのシリアル化、データベースへの挿入などを行う場合、インバリアント カルチャを使用してフォーマットできます。Invariant Culture の詳細については、次のリンクを参照してください: CultureInfo.InvariantCulture とはどういう意味ですか?

于 2012-06-29T16:20:00.563 に答える