decimalモジュールで浮動小数点数の丸め誤差対策を行う – 【Python】
Pythonで浮動小数点数の丸め誤差の対策はdecimalモジュールのDecimal関数で行うことが出来ます。decimalモジュールは組込モジュールになりますのでインストール不要です。
JavaだとBigDeicimalを使用するような感じです。
数値を指定したDecimalオブジェクト作成
Decimalオブジェクトを作成する際に数値を指定すると丸め誤差対策が出来ません。
シングルクォーテーションで囲んで文字列にする必要があります。
from decimal import Decimal a = Decimal(0.1) b = Decimal(0.2) sum = a + b print(sum) # 0.3000000000000000166533453694
文字列を指定したDecimalオブジェクト作成
Decimalオブジェクトを作成する際に浮動小数点数を文字列にすると、丸め誤差対策をすることが出来ます。
from decimal import Decimal a = Decimal('0.1') b = Decimal('0.2') sum = a + b print(sum) # 0.3

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^