标签: vba scientific-notation
在最长的时间内,我认为IsNumeric("1.23E45")返回True,因为“E”代表科学记数法,使得1.23E45为1.23x10 45
IsNumeric("1.23E45")
True
最近我注意到IsNumeric("1.23D34") 还返回了True,我对此感到难过。
IsNumeric("1.23D34")
D和E都会产生相同的结果:
D
E
?val("1.23d45") 1.23E+45 ?val("1.23e45") 1.23E+45
怎么回事?
答案 0 :(得分:12)
这出现在chat
根据Wikipedia ...
FORTRAN也使用“D”表示双精度数字。 “UHMānoa数学”Fortran第3课:格式化,写作等“。 Math.hawaii.edu。 2012-02-12。检索到2012-03-06。
FORTRAN也使用“D”表示双精度数字。
“UHMānoa数学”Fortran第3课:格式化,写作等“。 Math.hawaii.edu。 2012-02-12。检索到2012-03-06。
VBA仍然有很多BASIC祖先的痕迹(行号,GoSub..Return,Rem等等 - 它恰好发生在BASIC的根源上...... FORTRAN。
GoSub..Return
Rem
因此科学记谱法的“D”显然只不过是过去的爆炸。
底线,避免混淆维护代码的人,并坚持使用“E”(或“e”)。但是知道如果你需要将一些FORTRAN代码移植到... VBA,也支持“D”(或“d”)。