2017-04-24 21 views
0

おそらく非常に単純な質問ですが、まだ解明しようとしています。私はこのフォーマットで文字列として提供される多くの入力ダブルスを得た:文字列を二重にキャストする

0.99 
0.456 
etc.. 

私のdevのシステムでは、私はそれが好きで変換するとき:

CDbl(0.456) 

それは結構です、しかし生産に私はSystemInvalidCastException.

を取得し、私は私はドットやコンマのような異なるシステムシンボルについて賭けています。

システム構成から独立していて、入力文字列が正しく認識される方法はありますか?

私はこのアプローチで試してみたところ、うまくいきました。これは正しい方法ですか?

Double.Parse(value, CultureInfo.InvariantCulture) 

答えて

2

はい、これは正しい方法です。

問題は実際に文化に関連しています。どんな文化も指定しない場合は、システムの文化にデフォルトが設定されます。これは、コードが1つのシステムでは動作するが、他のシステムでは動作しない可能性が最も高くなります。

不変のカルチャを指定することで、システムのカルチャがキャストにもう影響しないことを確実にします。

関連する問題