请解释为什么以下代码的行为是随机的
下面的代码行在应该返回TRUE时返回FALSE
?Isnumeric("555-")
也是
?Isnumeric("555-"/2)返回TRUE
请解释一下IsNumeric的这种随机行为
发布于 2016-08-30 10:21:33
虽然它有点深奥,但尾数减号是一种有效的数字格式,有时用于会计包中。我想现在用得不多了。它表示一个负数,例如555- is -555。您的第二个示例之所以有效,是因为-555 (或555-)可以除以2,即-227.5 (或227.5-)。
在Excel中可以看到,它允许将格式作为文本的一部分传递到列中:

此外,您还可以设置一个数字格式,以使用尾随负数:
#,##0;#,##0-
看这个博客-帖子。
发布于 2016-08-30 10:18:02
来自微软
如果表达式的数据类型为布尔、字节、十进制、双、整数、长、SByte、短、单、UInteger、ULong或UShort,或包含这些数字类型之一的对象,则返回True。它还返回True,如果表达式是可以成功转换为数字的Char或String。 如果表达式为数据类型、日期或数据类型对象,且不包含数字类型,则IsNumeric返回False。如果表达式是不能转换为数字的字符或字符串,则IsNumeric返回False。
发布于 2016-08-30 10:16:44
看起来它把"555-“解释为-555。在检查IsNumeric之后,您可能会检测到这样的情况:
Cstr(CLng("555-")) = "555-"https://stackoverflow.com/questions/39224545
复制相似问题