首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 1e7和%运算符

Python 1e7和%运算符
EN

Stack Overflow用户
提问于 2021-01-03 11:40:27
回答 2查看 229关注 0票数 1

我目前正在对javascript代码进行逆向工程,我在其中遇到了以下代码

代码语言:javascript
复制
timestamp % 1e7

这段javascript代码输出的数字如下所示

代码语言:javascript
复制
4822529

用python编写的相同代码返回一个完全不同的数字。

代码语言:javascript
复制
>>> time.time() % 1e7
9645047.76914692

我没有正确使用这些运算符吗?

EN

回答 2

Stack Overflow用户

发布于 2021-01-03 11:45:51

在Python语言中,time.time返回自纪元以来的秒数,类似于:

代码语言:javascript
复制
1609645359.6018794

小数点前的7个数字是9645359。小数点前总共有10位数字。

但在JS中,时间戳通常以自纪元起的毫秒数给出:

代码语言:javascript
复制
console.log(Date.now());

代码语言:javascript
复制
1609645512558

或者差不多吧。这是1000倍,所以值有很大的不同;小数点前有13位数字。

如果你把不同语言的数字排成3位数,你就会看到这种模式:

代码语言:javascript
复制
   4822529
9645047

如果同时运行它们,那么48225047将更加紧密地结合在一起。

如果您希望Python与JS输出相匹配,请改为使用1e4对Python进行取模。

如果您希望JS与Python输出相匹配,请使用1e10在JS中取模。

票数 1
EN

Stack Overflow用户

发布于 2021-01-03 11:46:02

JavaScript的Date.now()以毫秒为单位返回时间,而Python的time.time()以秒为单位返回时间。如果你将Python的时间乘以1000,你会得到类似的结果。

代码语言:javascript
复制
> Date.now() % 1e7
5615760
代码语言:javascript
复制
>>> time.time() * 1000 % 1e7
5637124.4873046875

您还可以通过转换为int来去除小数部分

代码语言:javascript
复制
>>> int(time.time() * 1000 % 1e7)
5637124
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65546414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档