繁体   English   中英

Python 1e7 和 % 运算符

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

如果你同时运行它们,那48225047会更接近。

如果您希望 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM