isatoの活動日記

管理人isatoが毎日の生活で気になったこと、勉強になったことを書いています。

プログラミング言語の丸め誤差ってやつ

最近、python数値計算することがあったんですけど、どうも結果がおかしい。

 

(3^{\frac{1}{3}})^3

 

この値は何になりますか??

 

簡単ですね。

3です。

 

実際にpythonで計算してみましょう。

f:id:spark856:20190623151615p:plain

???

 

3にならない・・・。

 

 

理由は簡単です。

(3^{\frac{1}{3}})^3

=(3^{0.33333…})^3

=3^{0.99999…}

 

って感じで計算するからですね~。

 

これはpythonでのべき乗の指数部が、「有理数」に対応していないことを意味しています。

 

有理数モジュールとか使ったらうまくいったりするのでしょうか。