使用Decimal.TryParse转换蒙版货币字符串

时间:2011-11-15 22:19:01

标签: c# decimal cultureinfo

我在将此字符串转换为小数时遇到问题。我试着按照这里的文档,没有运气:Decimal.TryParse Method

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 个答案:

答案 0 :(得分:4)

我认为 - 同时符号和括号无效。 -3434343434.00罚款(3434343434.00)但 - (3434343434.00)无效。 - (3434343434.00)并没有真正意义上它使用2种不同的方法来表示否定,因此有点多余。

答案 1 :(得分:3)

您的字符串中包含()-符号。这是不正确的,这也是你的字符串不解析的原因。

请参阅AllowParentheses的文档:

  

AllowParentheses :表示数字字符串可以包含一对括号的括号。括号表示要解析的字符串表示负数。