使用「結構包和解包」浮點數0.01輸出0.009999999776482582。 對於我的項目,我將不得不配置浮點數爲 和相同的需要存儲在二進制文件,我需要這些數據以後分析,我需要配置的確切值。使用struct pack並解壓浮點數爲0.01的輸出0.009999999776482582。
如果有任何方法可以存儲精確值0.01並檢索相同的值,有人能幫助我嗎?
基於一些帖子,我已經嘗試使用雙而不是浮動,它的工作原理,但使用雙的問題是我的文件大小增加。我有很多參數,它們是浮點數,可以取0到5之間的任何值。因此,任何其他建議都將不勝感激。
下面是示例代碼
import struct
a = 0.01
b = struct.pack('<f', a)
c = struct.unpack('<f', b)
print c
(0.009999999776482582,)
確切值「0.01」不能由浮動。也許你可以看看'decimal'模塊,如果你想精確地表示'0.01'。 –
你存儲了什麼樣的值?你說數字從0到5有多少個小數位? – vz0
「基於一些帖子,我已經嘗試過使用double而不是float,它可以工作,但使用double的問題是我的文件大小增加了」 - 如果您不願意支付存儲價格來保存所有精度,需要,你不應該抱怨輸出中的精確損失。 – user2357112