-3

我错过了什么:

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

或者

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

失败!

输入字符串的格式不正确。

myAr[0] is "678016".

尝试添加NumberStyle.AnyCultureInfo.InvarialtCulture但得到了相同的结果。

有关字符串的更多信息:

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

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

4

2 回答 2

3

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

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

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

于 2013-06-06T12:29:10.527 回答
2

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

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

通过作品,我的意思是TryParse返回 false,不会引发异常。

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

于 2013-06-06T11:18:07.850 回答