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