2016-12-10 19 views
1

ノルウェーの通貨を10進数で解析するにはどうすればよいですか?ノルウェー通貨をパーズするにはどうすればいいですか?

私はこれらを解析しようとしています:

477,60 
2.320,00 

このコードは動作し、私は構文解析のための文化としてノルウェーを指定しているにもかかわらず、小数点解析例外をスローしません。

Convert.ToDecimal("2.320,00", System.Globalization.CultureInfo.GetCultureInfo("nb-NO")) 
+0

ノルウェー、 "NB-NO" または "NN-NO" のいずれかで行いますこの作品は "nn-NO"を使用する場合ですか? –

+0

@PeteStensønesいいえ、他のカルチャでも動作しません。両方ともNumberGroupSeparatorが定義されていません。 – mybirthname

+0

ちょうど確かめてください:それは実際にノルウェーの通貨のフォーマット方法ですか? glibcの桁区切り記号は改行されないスペースです。これは多くのサイト(http://mylittlenorway.com/2009/11/crosses-commas-and-great-divides/)でバックアップされますが、そうではありません私自身ノルウェー人であることは確かではありません。それは問題の解決方法に影響するため重要です。これが実際にカスタム形式であれば、解析時のカスタムコードが意味を成します。ノルウェーの一部でこれが標準的な場合は、カルチャー情報を変更して、アプリケーション全体でそれを使用することが理にかなっています。 – hvd

答えて

3

ノルウェーの文化はこの例外を受け取るため、NumberFormat.NumberGroupSeparatorを定義していません。

CultureInfo info = CultureInfo.CreateSpecificCulture("nb-NO"); 
var numberFormat = info.NumberFormat; 
numberFormat.NumberGroupSeparator = "."; 
numberFormat.CurrencyGroupSeparator = ".";//this if you are using currency 
numberFormat.PercentGroupSeparator = ".";//this for percentages 

ことがdecimal.TryParseメソッドを使用しようとした後:だから、それらを定義する必要があります。ここ

decimal result = 0; 
decimal.TryParse("2.320,00", NumberStyles.AllowDecimalPoint|NumberStyles.AllowThousands, info, out result); 

Full Example

-1

てみてください: '' 私がチェックしてきたように

Convert.ToDecimal("2320,00", System.Globalization.CultureInfo.GetCultureInfo("nb-NO")); 

それがいずれかを好きではありませんまたは '、'の後 '2'

+0

申し訳ありませんが、どういう意味ですか?ノルウェーの通貨のフォーマットはカスタマイズできません。 –

関連する問題