2017-01-07 5 views

答えて

1

瞬間fが1未満になると、私は "0" を取得何が起こるかではありませんそれ

を表示します。初めてfが1未満の場合、4.0 0.675が印刷されます。それはありません0

1.0 1.5 
2.0 1.5 
3.0 1.125 
4.0 0.675 
5.0 0.3375 

fの値が、その後急速になり非常に非常に小さな、Pythonは科学表記負の指数の使用を開始地点まで:

6.0 0.144642857143 
7.0 0.0542410714286 
8.0 0.0180803571429 
9.0 0.00542410714286 
10.0 0.00147930194805 
11.0 0.000369825487013 
12.0 8.53443431568e-05 
13.0 1.82880735336e-05 
14.0 3.65761470672e-06 
15.0 6.8580275751e-07 

注意を-05-06などfの値は非常に小さくなり、小数点をシフトする方が効率的です。あなたは固定小数点表記法を使用してこれらの値をフォーマットした場合、彼らはより多くのゼロを使用したい:

>>> format(8.53443431568e-05, '.53f') 
'0.00008534434315680000128750276600086976941383909434080' 
>>> format(6.8580275751e-07, '.53f') 
'0.00000068580275751000002849671038224199648425383202266' 

は結局fは、浮動小数点型のため 小さくなりすぎます。浮動小数点値は、単にこのポイントを超えてゼロに近づいて行くことはできません。

165.0 5.89639287564e-220 
166.0 1.05923225311e-221 
167.0 1.89148616627e-223 
168.0 3.35766775077e-225 
169.0 5.92529603077e-227 
170.0 0.0 

0.0前の最後の値が227ゼロと5.925であることの前に:にかなり近いです

>>> format(5.92529603077e-227, '.250f') 
'0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000592529603077000028336751' 

を絶対最小値a floatオブジェクトを表すことができます。 min attribute of the sys.float_info named tuple次を参照してください。つまり

>>> import sys 
>>> sys.float_info.min 
2.2250738585072014e-308 

を、あなたは限界に達し、そして5.92529603077e-2270.0左の間には多くの表現可能な値がありました。

関連する問題