Python3メモ⑤(数値、小数、f文字列など)

今まで数値のデータ型は整数型と浮動小数点型をやりました。
小数を扱う浮動小数点型は、10進小数での計算は正確に表現できない場合があります。これはPython特有の問題ではなくて、コンピュータ全般の問題です。詳しくは「浮動小数点数型 誤差」でGoogle検索してみて下さい。

<class ‘float’>
5.551115123125783e-17

0.1 + 0.1 + 0.1 – 0.3 の答えが変な数字になっています。

こういう時は、decimalモジュールを使います。decimalは正確に丸められた十進浮動小数点算術をサポートします。
※モジュールとは、他のプログラムから再利用できるようにしたファイルのことです。読み込んで利用します。

<class ‘decimal.Decimal’>
0.0

小数点は文字列にして、Decimalに渡します。

※ floatは演算速度が早い。Decimalは遅いけれど正確。

数学関数

詳しくは https://docs.python.jp/3/library/math.html を参照して下さい。
import math でモジュールを読み込み利用します。

<class ‘float’>
4.5
<class ‘int’>
5
<class ‘int’>
4

浮動小数点の4.5を切り上げ、切り捨てしています。結果はint整数型で返ります。

四捨五入(ではない)

丸めた先の値が偶数になるように値を丸める関数がroundです。

4
4
4
5
6

3.5の四捨五入は4で問題ない。
4.5を四捨五入したら5になるはずですが、偶数になるように4となる。
5.5は四捨五入したら6になり、これは問題ない。
python3のroundは要注意です。

Python 3.6 から導入された「f文字列」

今までformat()メソッドで書いていたものを「f文字列」でより簡潔に書けるようになりました。
接頭辞 ‘f’ または ‘F’ の付いた文字列内に、波括弧 {} を書けます。この波括弧 {} 内は実行時に式として評価されます。

1 + 1 = 2
1 + 1 = 2

1,234,567,890
1,234.5678
1,234.57
30.00%
0.3333333333
0001

今回は以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする