2016-10-09 37 views
0

我想將浮點數存儲在SQL blob記錄中,然後將數據作爲浮點數讀入。我不確定這是可能的,我無法自己進行轉換。將二進制文件數據轉換爲PHP中的浮點數據

例如,假設我讀取了字符串數據"3f000000"。這個4字節解釋爲IEEE-754浮點數將爲0.5。
我想在PHP中進行此轉換。我嘗試使用$n = floatval(hexdec('3f000000'))但這只是返回一個整數。有人可以幫我解決這個問題嗎?
另外,$n=floatval('0x3f000000')只是返回0.

回答

0

你確定「3f000000」是真的0.5嗎?

它試試這個:

var_dump(unpack("f", pack("H*", "3F000000"))); // give 8.82...E-44 
var_dump(unpack("f", pack("H*", "0000003F"))); // give 0.5 
+0

我不明白,爲什麼 「0000003f」 被轉換到0.5時, 「3f000000」 是0.5標準的IEEE-754格式。但這是一個非常好的開始。使用unpack是將非常大的BLOB(Mbs)轉換爲浮點數的最佳方法嗎? – Dominic

相關問題