繁体   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