いくつかの C コードと、置き換えようとしている F# を比較すると、最終結果にいくつかの違いがあることがわかりました。
コードを調べてみると、小さな違いではありますが違いがあることがわかりました。
コードは、ファイルからデータを読み取ることから始まります。そして最初の数字は異なって出てきます。たとえば、F# の場合 (スクリプトが簡単):
let a = 71.9497985840
printfn "%.20f" a
期待される (私にとっての) output が得られます71.94979858400000000000
。
しかし、Cでは:
a = 71.9497985840;
fprintf (stderr, "%.20f\n", a);
プリントアウトし71.94979858400000700000
ます。
その7はどこから来たのですか?
違いはほんのわずかですが、理由がわからないので気になります。(コードの 2 つのバージョンが分岐している場所を追跡するのが難しくなるため、私も気になります)