python 为什么timestamp()比减去1970-01-01多显示一微秒?

5jvtdoz2  于 2023-02-28  发布在  Python
关注(0)|答案(1)|浏览(160)

以下值相差1微秒:

In [37]: datetime(2514, 5, 30, 1, 53, 4, 986754, tzinfo=dt.timezone.utc) - datetime(1970,1,1, tzinfo=dt.timezone.utc)
Out[37]: datetime.timedelta(days=198841, seconds=6784, microseconds=986754)

In [38]: datetime(2514, 5, 30, 1, 53, 4, 986754, tzinfo=dt.timezone.utc).timestamp()
Out[38]: 17179869184.986755

第一种情况下986754中的微秒数,第二种情况下986755中的微秒数。
这仅仅是Python的浮点运算错误,还是我遗漏了什么?

2j4z5cfb

2j4z5cfb1#

它是一个浮点近似值。如果你输入

17179869184.986754

导入Python,您将获得

17179869184.986755

前者不能用Python的浮点类型所能达到的精度来表达。

相关问题