2017-12-19 21 views
1

私は今日Windows 7でプログラムをテストしました。それは動作しませんでした、私はエラーが見つかりました。float parseはWindows 7または8で異なりますか?

次の状況:

文字列をフロートに変換しました。 Windows 8:float.Parse (String.Replace(".", ","))

Windows 7では、クラッシュしないように反対側を直接実行する必要があります。

のWindows 7:float.Parse(String.Replace (",", "."))

Windows 7のフロート= 50.00

Windows 8のフロート= 50,50

は、それはなぜですか?

あなたはこれを解決する良い方法を知っていますか?

+5

あなたのマシンの1台がヨーロッパのユーザーによって使用されていますか?浮動小数点数は、デフォルトでユーザーの場所の規則を使用して書式設定/解析されます。 –

+3

現在の文化を避けるために 'float.Parse(" "、System.Globalization.CultureInfo.InvariantCulture)'を使用してください – Kalten

答えて

4

これは、Windows 7または8ではなく、地域/地域の設定です。あなたがいつも '。'と解析できるようにしたいのならほとんどの解析関数の第2引数としてSystem.Globalization.CultureInfo.InvariantCultureを指定できます。

+0

ありがとうございます。 InvariantCultureについてもっと読む。 :) – Staubi

関連する問題