10

私はこのスレッドの男とほとんど同じ問題を抱えています:

コンマの代わりにピリオドを持つ Float を変換しますか?

だから私の

double x = 234.4;
string y = x.ToString();

私は得るy == "234,4";

さらに悪いことに...Double.Parse("234.4")例外がスローされます。

コンマの代わりにピリオドを使用するように求められる前に、私は多くのコードを書いたので、グローバル レベルで CultureInfo を変更する何らかの方法が必要です

私ができるプロジェクトの設定はありますか?

私はもう試した:

        Application.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");

彼らは一種の仕事です。それらはアプリケーションの大部分で機能しますが、私の TabControl のタブにあるすべてのコントロールは、私のコンピューターの Localized CultureInfo を引き続き使用したいと考えています

これを解決する方法についてのアイデアはありますか?

4

3 に答える 3

11

あなたは使用しようとすることができます

double.Parse("...", CultureInfo.InvariantCulture)

x.ToString(CultureInfo.InvariantCulture)

あなたが確信しているプログラムの部分では、コンマまたは他の地域設定に依存する小数点記号の代わりに小数点を付ける必要があります。

それが役に立てば幸い。

于 2009-02-06T00:37:10.173 に答える
7

Florin Sabaus のコメントのおかげで、解決策が見つかりました。

        Application.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");

フォームを作成する直前に Main() で。

これで、すべての .ToString() と Double.Parse() を変更する必要がなくなります:-)

于 2009-02-06T08:10:37.840 に答える
1

この解決策を試してください: http://www.codeproject.com/KB/cs/Change_App_Culture.aspx

于 2009-02-06T00:44:35.323 に答える