私は2つの非常に大きな数に対して簡単な減算演算をしようとしています。科学記法変換 - スキーム
(- 1.8305286640724363e+023 (floor 1.8305286640724363e+023))
これを実行すると、結果は0.0になります。私はその答えを与えるだろう
(- 1.8305286640724363e+023 (floor 1.8305286640724363e+023)) => .2439521
拡大科学表記法:私はの出力を期待しています。
183052866407243622723319.24395251から183052866407243622723319.00 = 0.2439521
科学表記とは対照的に、私は、彼らがそうであるような場所での十進数で、これらの番号を表したいので、私は望ましい結果を達成することができます。スキーム内でこれを行う方法はありますか?どのようなヘルプ、ガイダンス、またはリファレンスも高く評価されます:)
私は、Windows 64bitとR5RS言語用のDrRacketを使用しています。
EDIT
は、私は私が行ってるthearithmeticの例について、できるだけ具体的にしたい考え出しました。
算術:
(* 271979577247970257395 0.6180339887) => 1.6809262297150285e+020
計算は、この同じ乗算をやって、結果yeilds => 168092622971502827156.7975214365
正確または不正確な使用しようとしたとき、私はこの取得:
(exact (* 271979577247970257395 0.6180339887)) => exact: undefined;
(inexact (* 271979577247970257395 0.6180339887)) => inexact: undefined;
を私はR5RSが正確/不正確をサポートしていないと思いますか?私はそれを見て、例がinexact-使用することを示して>正確な手順私は、これだので:それでは、私は使用してみました
(exact->inexact (* 271979577247970257395 0.6180339887)) => 1.6809262297150285e+020
:
(inexact->exact (* 271979577247970257395 0.6180339887)) => 168092622971502854144
そして、ちょうど特異性のために、私は反対をしました誰かが言ったように大きなフロート:
(bf-precision 128)
(bf (* 271979577247970257395 0.6180339887)) => (bf 168092622971502854144)
正確な出力と同じ出力を与えます。私が望むのは、計算機から得られる数値を保存することだけです。非常に難しい作業のようです。私はこれを取得していないために馬鹿に聞こえるかもしれない、申し訳ありませんが、ちょうど私がSCHEMEの極端なアマチュアであることを覚えておいてください。あなたの助けをもう一度ありがとう! :)
こんにちは、ご連絡いただきありがとうございます。ビッグフロートは私に小数点を与えてくれません。私はあなたが強制的に小数点以下を話しているのを見てから、引き算をしています。浮動小数点数を取得するために算術演算を実行しています。私はあなたにあなたを見せることができるように質問を更新します。 – Sixers17
こんにちは。私は、結果を標準浮動小数点数に戻す方法を示すアップデートを追加しました。 – soegaard
私はbigfloatsを使用する代わりの方法を追加しました。 – soegaard