[英]float32 representation to float64 NumPy Python
情況
astropy.io
fits
從文件中讀取數據,該文件在numpy
中使用。 float32
數,而實際上不應該在數據上存在負值(由於數據特性)。 問題
float64
,當讀取並強制轉換為float32
變為負數嗎? 如果是,它們必須有多小? float64
正值?
- 難道是那些數字很小的float64,當讀取並強制轉換為float32時是否變為負數? 如果是,它們必須有多小?
否-如果原始的float64值小於可表示的最小float32數,則在轉換后該值將簡單地等於零:
tiny = np.finfo(np.float64).tiny # smallest representable float64 value
print(tiny)
# 2.22507385851e-308
print(tiny == 0)
# False
print(np.float32(tiny))
# 0.0
print(np.float32(tiny) == 0)
# True
從一個帶符號的表示形式轉換到另一個帶符號的表示形式始終會保留符號位 。
- 是否有一種方法可以倒退該過程,即獲取原始的非常小的float64正值?
否-從64位轉換為32位意味着您實際上是在丟棄原始表示形式中的一半信息,一旦消失了,就沒有神奇的方法來恢復它。
對負值的更合理的解釋是,它們是由於在存儲數據之前對數據執行的舍入誤差引起的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.