質問: Pythonでの小数点の大小関係がどうなっているのかわかりません。 浮動小数点の関係で小数点の計算がおかしくなるということ自体は若干知っている程度です。 指数表記されている小数点の比較をすると、結果がまったくよくわからないです。 ``` 3.1305867285372715e-11 > 5.744666587775521e-13 3.1305867285372715e-11 < 5.744666587775521e-13 ``` 上記をコンソール上で打つと、前者が`True`で後者が`False`が返ってきます。 かと思えば、一の位の値を変えてみてもおかしな結果が返ってきます。 ``` 3.1305867285372715e-11 > 2.744666587775521e-13 3.1305867285372715e-11 < 2.744666587775521e-13 ``` 上記のように値を変えると、前者が`True`で後者が`False`となりました。結果としてはおかしくないのかもしれませんが、挙動としては理解できないです。 なぜこのような結果になっているのでしょうか? また、このような値を比較したい場合にはどのような処理が必要なのでしょうか?
回答: 指数表記の意味がわからないのでしょうか。 `xen`はx*10^nの意味です。3.13e-11は3.13*10^-11を意味します。 わかりやすく小数点以下20桁まで表示するとこんな感じですね。 ``` >>> a,b = 3.1305867285372715e-11, 5.744666587775521e-13 >>> print("{0:.20f}\n{1:.20f}\n".format(a, b)) 0.00000000003130586729 0.00000000000057446666 ``` 参考: 指数表記 - Wikipedia 5.274e-4 というのはどう読むの