簡體   English   中英

在Python中執行Javascript浮點運算

[英]Performing Javascript floating point arithmetic in Python

我正在編寫一個Python程序,它與我沒寫過的webapp交互。 我需要在我的程序中表示一些狀態,該狀態不是由服務器發送到(javascript)客戶端,而是在客戶端和服務器上分別使用共享信息計算。

例如,交換可能類似於:

var x = getValueFromServer(); //client gets 0.73346
x *= 1 << 30;
result = x & 1023

我的Python代碼成功收到0.73346,但我需要result的值。 乘以2 ^ 30的結果在javascript和Python中似乎是相同的,但我無法直接掩蓋Python中的浮點值。

我試過(對於上面的例子值)

from struct import pack, unpack
unpack('q', pack('d', 0.73346))[0] & 1023

但是這在Python中給出了696的值,而當我在節點中運行上面的javascript時,得到的值為566.我還嘗試了一些打包和解包格式的其他組合,但沒有成功。

我的最后一招是使用節點子進程從Python內部執行javascript,但我寧願避免這種情況。 我怎么解決這個問題?

x = 0.73346
x = x * (1 << 30)
x = int(x) & 1023

在python中給出566

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM