テキストファイルの中身が、たとえば
"3.1416 2.718"
だとして、
確かにだめですね。この場合のようにatofがものすごく限定的な解であることはわかりますが、AB5が出るまで待ってください、なんて悠長なことを言うよりは、(現実問題として活用できるかどうかはともかく)現時点で使用可能な手段を選択肢の1つとして示すことにしました。
Input(というよりそれが中で呼び出しているVal)が指数表記を認識しないことは、バグとして遅くともAB 5.0正式版までには直します。
・規格で決まっていることというのは、よほどの事情がない限り勝手にかえてはならない。
規格を守らないというのは、規格制定の意味がなくなるから。
残念ながらBASICの標準規格が好例で、正に誰も従わず意味のない状態です。こればっかりはActiveBasicだけでどうにかできる問題ではなく、やるなら他のBASIC処理系の作者さんも歩調を揃えてやらねば意味がないです。しかし、みなBASICを統一したくてうずうずしているという話も寡聞にして知りません。
かと言って、ABはN88互換かと言うと、バージョンが上がる度に非互換な事柄が増えており、独自路線を突き進んでいるのは誰から見ても明らかでしょう。それではだめだという声がないからです。それで良いと思われているのかもしれませんし、思っているが誰も言わないだけなのかもしれません。
・64bit整数で、桁が大きくなると演算結果が正しくない。(倍精度のルーチンを呼んでいる?)
・print (64bit整数)で、数値によってはe変換されてしまう。
要するに、正しい値が印字されず、近似値となってしまう。
これは、正にABがあちこちで数値をDouble型として扱っている部分があるためです。Long/DWordで表現できる値は、Doubleでも正確に表現できるため、64ビット整数型が無かった時代は、(速度などを気にしなければ)それで問題なかったのです。問題は64ビット整数型が導入されても修正されていないということですが。ちなみに、少なくともPrintのほうは、開発中のAB5で直っているはずです。