2011-11-15 3 views
1

이 문자열을 10 진수로 변환 할 때 문제가 있습니다. 나는 운이 여기 설명서를 따라 시도 : Decimal.TryParse MethodDecimal.TryParse를 사용하여 마스크 된 통화 문자열 변환

string stringVal = "-(3434343434.00)"; 

NumberStyles style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands | 
    NumberStyles.AllowParentheses | NumberStyles.AllowLeadingSign; 

CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US"); 

decimal value; 
bool parseSuccess = decimal.TryParse(stringVal, style, culture, out value); 

parseSuccess가 false를 반환한다.

+2

'decimal.TryParse'는 표현식 평가 기가 아닙니다. 번호를 써. –

답변

3

문자열에 ()- 기호가 모두 있습니다. 이는 올바르지 않으며 문자열이 구문 분석하지 않는 이유입니다.

AllowParentheses에 대한 문서화를 참조하십시오

AllowParentheses : 숫자 문자열 수를 둘러싸는 괄호 한 쌍을 가질 수 있음을 나타냅니다. 괄호는 구문 분석 할 문자열이 음수임을 나타냅니다.

+0

감사! 기호와 괄호의 생성은 Telerik의 RadMaskedEditBox 컨트롤의 버그입니다.이 컨트롤은 문자열을 가져 오는 곳입니다. – mservidio

4

동시에 기호와 괄호는 유효하지 않다고 생각합니다. -3434343434.00은 그대로 (3434343434.00)이지만 - (3434343434.00)는 유효하지 않습니다. - (3434343434.00)는 실제로 음수를 나타내는 데 2 ​​가지 다른 방법을 사용하는 것이 의미가 없으므로 약간 중복됩니다.