"$ 45.59"のような文字列を10進数で解析しようとしています。何らかの理由で、入力が正しい形式でないという例外が発生しています。これはグローバルプログラムにはならないので、私はすべてのローカリゼーションに関心がありません。ここに私がやっていることがあります。何か問題は見えますか?10進数の通貨テキストを解析する際に問題が発生する
NumberFormatInfo MyNFI = new NumberFormatInfo();
MyNFI.NegativeSign = "-";
MyNFI.NumberDecimalSeparator = ".";
MyNFI.NumberGroupSeparator = ",";
MyNFI.CurrencySymbol = "$";
decimal d = decimal.Parse("$45.00", MyNFI); // throws exception here...
また、あなたの 'NumberFormatInfo'を使いたい場合は、' decimal d = decimal.Parse( "$ 45.00"、NumberStyles.Currency、MyNFI); ' –
それを修正しました。私は最初のアプローチがうまくいかなかった理由を理解したいと思います... – PICyourBrain
Decimal.Parseに関するMSDNのドキュメント:「sパラメータはNumberStyles.Numberスタイルを使用して解釈されます。つまり、空白と桁区切りが許可されますがsに存在することができる要素(通貨記号、桁区切り記号、空白など)を明示的に定義するには、Decimal.Parse(String、NumberStyles、IFormatProvider)メソッドを使用します。 –