私のクライアント アプリケーションは、writeln と readln を使用して、テキスト ファイルを介して real 型のかなりの数の変数をエクスポートおよびインポートします。コードが次のようになるように、書き込まれたフィールドの幅を広げようとしました。
writeln(file, exportRealvalue:30); //using excess width of field
....
readln(file, importRealvalue);
エクスポートしてから再度インポートしてエクスポートし、ファイルを比較すると、最後の 2 桁に違いがあります。
-1.23456789012E-0002
-1.23456789034E-0002
これは実際にアプリに違いをもたらすため、クライアントは私がそれについて何ができるかを知りたがっています. 今、それを行うのが書き込み/読み取りだけであるかどうかはわかりませんが、ヘイスタックに再び飛び込む前に、簡単な質問を投げかけようと思いました。これでバイナリにする必要がありますか?
これは通貨などを扱うアプリではありません。ファイルとの間で値を読み書きするだけです。浮動小数点が時々少し奇妙であることは知っていますが、ルーチンの 1 つ (writeln/readln) で面白いことが起こっているのではないかと思いました。