【问题标题】:Why does IsNumeric("1.23D45") return True?为什么 IsNumeric("1.23D45") 返回 True?
【发布时间】:2016-04-20 04:35:23
【问题描述】:

在很长一段时间里,我认为IsNumeric("1.23E45") 返回了True,因为“E”代表科学记数法,使得 1.23E45 成为 1.23x1045

最近我注意到IsNumeric("1.23D34") 返回了True,我不知道为什么。

DE 产生相同的结果:

?val("1.23d45")
 1.23E+45 

?val("1.23e45")
 1.23E+45 

怎么会?

【问题讨论】:

    标签: vba scientific-notation


    【解决方案1】:

    这出现在chat


    根据Wikipedia...

    FORTRAN 也使用“D”来表示双精度数。

    “UH Mānoa 数学 » Fortran 第 3 课:格式、书写等”。 Math.hawaii.edu。 2012-02-12。检索于 2012 年 3 月 6 日。

    VBA 仍然有许多 BASIC 祖先的痕迹(行号、GoSub..ReturnRem 等) - 恰好 BASIC 的根源在于... FORTRAN。

    因此,科学记数法的“D”显然只不过是过去的爆炸。

    底线,避免混淆维护您的代码的人,并坚持使用“E”(或“e”)。但要知道,如果您需要将一些 FORTRAN 代码移植到 ...VBA,也支持“D”(或“d”)。

    【讨论】:

    • 好故事。因此,OP 必须检查是否出现“D”字符以明确说明单元格内容是数字
    • 确实是好故事,我从未注意到这种行为,完全无法解释
    猜你喜欢
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 2010-09-13
    • 2017-05-03
    相关资源
    最近更新 更多