我缺少什么:
decVal = Decimal.Parse(myAr[0]);
或
Decimal.TryParse(myAr[0], out decVal);
失败!
输入字符串不正确。
myAr[0] is "678016".
尝试添加NumberStyle.Any
和CultureInfo.InvarialtCulture
,但结果相同。
有关字符串的更多信息:
它与希伯来语中的一些字母和它们之间的“\ u200e”空格连接在一起。然后我用split('')来取回数字。
这可能是此错误的来源,但当我检查手表中的myAr [0]时,它是纯字符串....
答案 0 :(得分:3)
伙计们我找到了答案,我会为下一代重写这个问题。 原始字符串是由特殊序列分隔的字母和数字的串联,以保持rtl情况下的顺序:“\ u200E”。
稍后使用string.split('')提取的数字似乎可以正常工作(在手表中),这会导致问题。
一旦我使用了string.split(“\ u200e”)。ToCharArray()我得到了相同的结果,但现在decimal.Parse正在工作。 看起来特殊的字符仍然在字符串中,对于手表是不可见的。
答案 1 :(得分:2)
这很奇怪,在我的机器上(.NET 4),即使这样也可以:
Decimal.TryParse("asdf123&*", out someDecimal);
根据作品,我的意思是TryParse
返回false,没有异常被抛出。
Parse
方法可能会抛出异常 - 也许你有一些空格或字符串字面上包含“(引号)?