2011-11-15 38 views
1

我有问题将此字符串转换为小数。我试图按照这里的文档没有运气:Decimal.TryParse Method使用Decimal.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

我认为 - 符号和括号在同一时间是无效的。 -343434343434.00按原样(3434343434.00),但 - (3434343434.00)无效。 - (3434343434.00)没有任何意义,它使用2种不同的方法来表示否定,因此有点多余。