2016-02-05 78 views
0

我正在努力與我無法解決的事情。 我正在開發一個客戶端 - 服務器應用程序,在python ofc,我需要發送一些「浮點型」數據,但sock.sendto需要一個「字節型」變量來發送。 我試過struct.pack,我試過numpy.array(這一個讓我發送一個完整的數組,在這種情況下似乎是最好的模塊)他們都工作,我可以發送我需要的數據在一個「字節類型」格式。 真正的問題是服務器端,我無法將收到的數據(以字節爲單位)轉換爲浮點數。 我嘗試這樣做: 1)演員:浮置(數據)OFC沒有工作 2)「」。加入變量,然後用浮點(數據)OFC並沒有工作過[Python]轉換問題:浮動 - >字節和反之亦然

所以它轉換我很困惑。任何想法?我真的需要讀一個浮動服務器端。 由於

回答

1
# sender side 
data = struct.pack('!d', 3.1415) # float -> bytes 

# receiver side 
x = struct.unpack('!d', data) # bytes -> float 

struct.unpack返回解壓值的元組。與x[0]你得到第一個(在這種情況下)值,這是你想要的浮點數。

編輯:請注意,python浮動實際上是雙打,因此應該打包。

+0

謝謝。 忘記解開包裝。這是一個完美的解決方案:D –

+0

我真的用''!''運行它。我已經讚揚了這一職位。 – kazemakase

+0

@mhawke你爲什麼要刪除你的答案?我認爲除了精確度問題之外,它比我的要好,因爲它討論了其他選項。 – kazemakase