2016-03-29 18 views
0

"-23.27" gibi bir negatif dizeyi ondalık nokta değerine dönüştürmeye çalışıyorum. Sorun bazen "(23.27)" gibi parantez içinde negatif değerler almamdır.Negatif Bir Dize Ondalık değerine dönüştürme nasıl yapılır?

Kod parantezini denetlemek için yazdım Ve ondalık nokta değerini negatif biçiminde al, ancak aynı kod "-23.27" ile çalışıyorsa, bir Giriş dizesi doğru biçiminde değil Hata oluştu. Bu benim kodum. Herhangi bir yardım takdir edilecektir. |

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 kaçırıyoruz NumberStyles.AllowParentheses_ – Steve

+3

Bir çift (ön işaret ve ondalık) unuttun. Sadece numarayı kullan | AllowParentheses. –

cevap

7

Sen AllowLeadingSign flag

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

Çalıştı. bunu nasıl özlediğimi bilmiyorum. Çok teşekkür ederim –

+2

Bir yan not olarak, '-23.27' ayrıştırırken System.Globalization.NumberStyles.AllowDecimalPoint' gerekiyordu, başka bir istisna var. –

+0

İyi yakalama, ekleyeyim. –

İlgili konular