2016-03-29 11 views
0

Imは"-23.27"のような負の文字列を小数点の値に変換しようとしていますが、問題は時には"(23.27)"のように括弧内の負の値を取得することがあります。負の文字列を10進値に変換する方法は?

括弧を制御するコードを記述しましたが、小数点の値を負の形式で取得しましたが、同じコードが"-23.27"で実行されている場合、入力文字列が正しい形式のエラーではありません。これは私のコードです。どんな助けもありがとう。

decimal ValueN = (decimal.Parse("-23.27", 
        System.Globalization.NumberStyles.AllowParentheses | 
        System.Globalization.NumberStyles.AllowLeadingWhite | 
        System.Globalization.NumberStyles.AllowTrailingWhite | 
        System.Globalization.NumberStyles.AllowThousands)); 
+0

を逃している_NumberStyles.Number | NumberStyles.AllowParentheses_ – Steve

+3

あなたはカップル(冒頭記号と小数点)を忘れました。番号| AllowParentheses。 –

答えて

7

あなたはAllowLeadingSignフラグに

decimal ValueN= (decimal.Parse("-23.27", 
       System.Globalization.NumberStyles.AllowParentheses | 
       System.Globalization.NumberStyles.AllowLeadingWhite | 
       System.Globalization.NumberStyles.AllowTrailingWhite | 
       System.Globalization.NumberStyles.AllowThousands | 
       System.Globalization.NumberStyles.AllowDecimalPoint | 
       System.Globalization.NumberStyles.AllowLeadingSign)); 
+0

それは働いた。私はそれを逃した方法を知らない。ありがとうございました –

+2

副題として、 '-23.27'の解析時に' System.Globalization.NumberStyles.AllowDecimalPoint'が必要でした。それ以外の場合は例外があります。 –

+0

良いキャッチ、それを私に追加させてください。 –

関連する問題