为什么IsNumeric("1.23D45")会返回True?

Mat*_*don 6 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 
Run Code Online (Sandbox Code Playgroud)

怎么会?

Mat*_*don 12

这出现在聊天中


根据维基百科 ...

FORTRAN也使用"D"表示双精度数字.

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

VBA仍然有其基本的祖先的许多痕迹(行号GoSub..Return,Rem等) -它只是恰巧,基本认定其根源在于... FORTRAN.

所以科学记谱法的"D"显然只不过是过去的爆炸.

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