为什么IsNumeric(“1.23D45”)返回True?

时间:2016-04-20 04:35:23

标签: vba scientific-notation

在最长的时间内,我认为IsNumeric("1.23E45")返回True,因为“E”代表科学记数法,使得1.23E45为1.23x10 45

最近我注意到IsNumeric("1.23D34") 返回了True,我对此感到难过。

DE都会产生相同的结果:

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

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

怎么回事?

1 个答案:

答案 0 :(得分:12)

这出现在chat

根据Wikipedia ...

  

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

     

“UHMānoa数学”Fortran第3课:格式化,写作等“。 Math.hawaii.edu。 2012-02-12。检索到2012-03-06。

VBA仍然有很多BASIC祖先的痕迹(行号,GoSub..ReturnRem等等 - 它恰好发生在BASIC的根源上...... FORTRAN。

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

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