【Python】数値型 小数編

python_logo

Pythonでは様々な数値を扱えます。

数値型には3種類あります。

整数・浮動小数点数・複素数です。

今回はそのうちの浮動小数点数について焦点を当てて紹介したいと思います。

以下が今回の内容です。

浮動小数点数について

  1. 浮動小数点数
  2. 「.」を使った表現
  3. 「e」を使った表現
  4. Tipsや注意点

浮動小数点数

Pythonにおいて小数を表すための表現です。

どんなプログラミング言語にも当てはまりますが、パソコン内部の処理では小数を表すのは整数よりも難しいです。

ここでは触れませんが、どうしても近似値にならざるを得ない理由があります。

「.」を使った表現

これは私たちにとってはわかりやすい表現です。

日常生活で使うように.を使って数を表せます。


>>> 0.001
0.001
>>> 3.1415
3.1415

「e」を使った表現

eもしくはEを使って整数部と指数部を指定します。整数部と指数部は常に10進数です。

これは、あまり馴染みのない表現方法です。

コンピュータの内部で行っている処理を直接指定しています。


>>> 10e2
1000.0
>>> 10E-2
0.1

実際にやっていることは単純です。

整数部はeの前の数です。

指数部はeの後の数です。

指数部は常に基数が10進数の累乗を表しています。

つまり、10を何回掛けるのかです。

マイナスで指定されている場合は1/10を何回掛けるのかです。

したがって

10e2は10 × 10 ^ 2 = 1000
10e-2は10 × (1/10) ^2 = 0.1

となるのです。

Tipsや注意点

いくつか注意点がありますのでそれぞれ確認していきましょう!

指数部の頭に0をつけてもOK

整数編で、10進数は頭に0をつけないことは伝えた通りです。

ですが、浮動小数点の指数部の表現に頭文字に0が含まれても大丈夫なんです。


>>> 10e02
1000.0
>>> 10e-02

マイナスの値は?

これは、整数編と同じです。

マイナスの値は-をつけることで表現できますが、リテラルとしては定義されていません。

Python3.6で新しく追加された「_」

桁を見やすいようにアンダースコアを使って表現することができるようになりました。

以下のように数値リテラルを定義できます。


>>> 1_000e-0_2
10.0

整数部と指数部の両方にアンダースコアが使えます。

可読性が向上するために追加された仕様ですね。

これはPEP 515で示されています。

まとめ

いかがだったでしょうか?

実際には「.」をつかって小数は表現すれば良いと思います。

以上になります。

みなさんのよりよいPythonライフを祈っています!