Decimal.TryParse无法解析整数值

时间:2013-06-06 11:05:43

标签: c# parsing decimal

我缺少什么:

decVal = Decimal.Parse(myAr[0]);

Decimal.TryParse(myAr[0], out decVal);

失败!

输入字符串不正确。

myAr[0] is "678016".

尝试添加NumberStyle.AnyCultureInfo.InvarialtCulture,但结果相同。

有关字符串的更多信息:

它与希伯来语中的一些字母和它们之间的“\ u200e”空格连接在一起。然后我用split('')来取回数字。

这可能是此错误的来源,但当我检查手表中的myAr [0]时,它是纯字符串....

2 个答案:

答案 0 :(得分:3)

伙计们我找到了答案,我会为下一代重写这个问题。 原始字符串是由特殊序列分隔的字母和数字的串联,以保持rtl情况下的顺序:“\ u200E”。

稍后使用string.split('')提取的数字似乎可以正常工作(在手表中),这会导致问题。

一旦我使用了string.split(“\ u200e”)。ToCharArray()我得到了相同的结果,但现在decimal.Parse正在工作。 看起来特殊的字符仍然在字符串中,对于手表是不可见的。

答案 1 :(得分:2)

这很奇怪,在我的机器上(.NET 4),即使这样也可以:

Decimal.TryParse("asdf123&*", out someDecimal);

根据作品,我的意思是TryParse返回false,没有异常被抛出。

Parse方法可能会抛出异常 - 也许你有一些空格或字符串字面上包含“(引号)?