我正在写一个Python程序,它与我没写的webapp进行交互。有一些状态需要在我的程序中表示,而不是由服务器发送到(javascript)客户端,而是在客户端和服务器上分别使用共享信息进行计算。在Python中执行Javascript浮点运算
例如,交易所可能会去是这样的:
var x = getValueFromServer(); //client gets 0.73346
x *= 1 << 30;
result = x & 1023
我的Python代码成功接收0.73346,但我需要的result
值。乘以2^30的结果似乎在JavaScript和Python中是相同的,但我不能直接屏蔽Python中的float值。
我曾尝试(对于上面的例子中值)
from struct import pack, unpack
unpack('q', pack('d', 0.73346))[0] & 1023
但这给出了696的值在Python,而当我在节点运行以上的JavaScript,我得到的566值我已经还尝试了其他一些打包和解包格式的组合,但没有成功。
我最后的手段是从Python内部使用节点子进程执行javascript,但我宁愿避免这种情况。我该如何解决这个问题?
如何蟒蛇接收数据使用? – pointerless
一个websocket。虽然这并不特别相关。从技术上讲,它不直接接收浮点数,它接收一些整数并计算浮点数,所以解码正在使用的浮点数没有问题。 –
我不确定你想用'struct'达到什么目的:这将重新解释浮点的位模式为整数,而不是做类似于算术运算的操作。像'int(0.73346 *(1 << 30))&1023'这样的东西能做到你想要的吗? –