Python勉強中 4
「Python3.0では数値の精度を保とうとせず、より正確な答えを返すように仕様が変更されています。」とあったので、ちょっと実験。
>>> x = 1 / 3 >>> print(x) 0.333333333333 >>> print(x * 3) 1.0
んー、まあ1を3で割った後に3で掛けるから1でいいんだけどさ。
なんで0.333333333333の3倍が1なのだろうか?
>>> 0.333333333333 * 3 0.9999999999990001
普通に計算したらこうなった。
うーん、、、謎が多いな。
<追記>
最後の計算にprint()を使ってなかったのでそれも試してみた。
>>> print(0.333333333333 * 3) 0.999999999999
これなら納得がいく。
どうやらprint()を使うか使わないかでも結果が変わってくるらしい。