[英]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.