2015-10-14 56 views

回答

6

退房sys.float_info

>>> import sys 
>>> sys.float_info 
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1) 

從文檔

min  DBL_MIN  minimum positive normalized float 
min_exp DBL_MIN_EXP minimum integer e such that radix**(e-1) is a normalized float 

在我的系統中,它提到min=2.2250738585072014e-308

4

檢查sys.float_info.min。請注意,這是最小的標準化的值;最小denormalized value可能會更小,但數值準確性將受到影響。

對於通常的64位浮點數,歸一化最小值大約爲2.2e-308。非規格化分鐘可少得多,下至4.94e-324

>>> 5e-324 
4.9406564584124654e-324 

還值得指出的是,decimal模塊的Decimal類型可以表示任意小的數字,僅受可用內存的限制。

+0

什麼是在這種情況下規範化和非規範化? – poppyseeds

+2

這是與數字的浮點數表示技術區別。維基百科有一個很好的概要:https://en.m.wikipedia.org/wiki/Denormal_number – nneonneo

+0

@nneonneo一個小建議。您能否將維基鏈接添加到您的文章中。評論可能被刪除,鏈接可能會丟失。謝謝。 –

相關問題