[英]Python 1e7 and % operator
我目前正在对 javascript 代码进行逆向工程,我遇到了这个代码
timestamp % 1e7
javascript 中的此代码输出如下所示的数字
4822529
像这样用 python 编写的相同代码会返回一个完全不同的数字。
>>> time.time() % 1e7
9645047.76914692
我没有正确使用这些运算符吗?
在 Python 中, time.time
返回自纪元以来的秒数,类似于:
1609645359.6018794
小数点前的 7 个数字是9645359
。 小数点前共有 10 位数字。
但是在 JS 中,时间戳通常以自纪元以来的毫秒数给出:
console.log(Date.now());
1609645512558
或附近。 那是大 1000 倍,所以值明显不同; 小数点前有 13 位数字。
如果您将不同语言的数字排成 3 个数字,您会看到这种模式:
4822529
9645047
如果你同时运行它们,那4822
和5047
会更接近。
如果您希望 Python 与 JS output 匹配,则以 Python 为模,取模1e4
。
如果您希望 JS 匹配 Python output,则在 JS 中以1e10
取模。
JavaScript 的Date.now()
以毫秒为单位返回时间,而 Python 的time.time()
以秒为单位返回时间。 如果你将 Python 的时间乘以1000
,你会得到类似的结果。
> Date.now() % 1e7
5615760
>>> time.time() * 1000 % 1e7
5637124.4873046875
您还可以通过转换为int
去除小数部分:
>>> int(time.time() * 1000 % 1e7)
5637124
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.