4
Python 3では4 * 0.1の浮動小数点値は見栄えが良いのに、3 * 0.1は見栄えが悪いのはなぜですか?
ほとんどの小数には正確な浮動小数点表現がないことがわかっています(浮動小数点演算は壊れていますか?)。 しかし、両方の値が実際に醜い10進数表現を持っている場合、なぜ4*0.1がとしてうまく表示されるのかわかりません0.4が、そうで3*0.1はありません。 >>> 3*0.1 0.30000000000000004 >>> 4*0.1 0.4 >>> from decimal import Decimal >>> Decimal(3*0.1) Decimal('0.3000000000000000444089209850062616169452667236328125') >>> Decimal(4*0.1) Decimal('0.40000000000000002220446049250313080847263336181640625')