- 締切済み
浮動小数点の誤差のあわせ方
文字列からdouble型変換で他のPGと誤差がでてしまうのですが、 なんとか同じBinaryにしたいので教えてください。 1.489を他のPGのHEXで表した結果では、 printf("1.489 = %08lx%08lx\n", atof((double)???)); >3ff7d2f1a9fbe76c 私の作ったPGでは printf("1.489 = %08lx%08lx\n", atof("1.489")); >3ff7d2f1a9fbe76d の結果になります。 丸めれば、同じになるような気がしますが、 その方法がわかりません。 SPARC でCのライブラリかなにかあるでしょうか? どうかよろしくおねがいします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
noname#11476
回答No.3
- kaitou-man
- ベストアンサー率60% (86/141)
回答No.2
- kaitou-man
- ベストアンサー率60% (86/141)
回答No.1
補足
> > printf("1.489 = %08lx%08lx\n", atof((double)???)); > こちらが何をしているのかわかりませんが、それ次第ですね。 そうです。何をしているかわからないので、 "1.489"の文字列を 何とかして 3ff7d2f1a9fbe76c の形にしたいのです。 元のPGでは、特殊なことはしていないはずなので、 比率で判断するのではなく、atof 以外の変換関数 もしくは、ある汎用的な定数計算をかますことで上記の値にしたいです。 あと、コンパイルオプション(-fround )も デフォルトのままでお願いします。