首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA IsNumeric野生化

VBA IsNumeric野生化
EN

Stack Overflow用户
提问于 2016-08-30 10:06:33
回答 3查看 596关注 0票数 5

请解释为什么以下代码的行为是随机的

下面的代码行在应该返回TRUE时返回FALSE

?Isnumeric("555-")

也是

?Isnumeric("555-"/2)返回TRUE

请解释一下IsNumeric的这种随机行为

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-30 10:21:33

虽然它有点深奥,但尾数减号是一种有效的数字格式,有时用于会计包中。我想现在用得不多了。它表示一个负数,例如555- is -555。您的第二个示例之所以有效,是因为-555 (或555-)可以除以2,即-227.5 (或227.5-)。

在Excel中可以看到,它允许将格式作为文本的一部分传递到列中:

此外,您还可以设置一个数字格式,以使用尾随负数:

#,##0;#,##0-

看这个博客-帖子

票数 8
EN

Stack Overflow用户

发布于 2016-08-30 10:18:02

来自微软

如果表达式的数据类型为布尔、字节、十进制、双、整数、长、SByte、短、单、UInteger、ULong或UShort,或包含这些数字类型之一的对象,则返回True。它还返回True,如果表达式是可以成功转换为数字的Char或String。 如果表达式为数据类型、日期或数据类型对象,且不包含数字类型,则IsNumeric返回False。如果表达式是不能转换为数字的字符或字符串,则IsNumeric返回False。

票数 3
EN

Stack Overflow用户

发布于 2016-08-30 10:16:44

看起来它把"555-“解释为-555。在检查IsNumeric之后,您可能会检测到这样的情况:

代码语言:javascript
复制
Cstr(CLng("555-")) = "555-"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39224545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档