浮動小数点数で桁数の大きな数を扱うと誤差が出てしまいますね。
これは仕方の無い事です。
私はプログラミング初学者のため、いろいろ解説サイトを見て回る訳ですが、この誤差に対する問題に対処するのが相当難しいように説明されています。
銀行などでは誤差を小さくするために、~~の様な仕組みを使っているといった様な解説も見かけました。
以下の様なデータ構造なら、多少の誤差で大問題になりかねない場合、処理速度より精度を優先させたい場合、誤差を気にせずプログラムを書きたい場合等には有用なデータ構造だと思うのですが、なぜこの様に実装する例が無いのでしょうか。
#誤差の出ないデータ構造
・有理数クラス
実数クラスを継承しています。
浮動小数点型は使用せず、分子(整数)と分母(自然数)の2つのメンバを持つクラスです。
・実数クラス
無理数を扱いたい場合は、内部では人間が計算するときと同じように、円周率などは3.14...という定数ではなくπという状態を保持し、∛4 なども有理数に変換させず、そのままの形で保持しておきます。
累乗根, 円周率, ネイピア数 等 以外の、人間にも解釈できないような無理数を扱うことは不可能ですが、それが原因で問題が起きる事はないような気がします。
少なくとも有理数に関しては、誤差が出ない事を保証できると思います。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。