我想在 python 中以亚秒精度捕获时间戳。看起来标准答案是 int(time.time() * 1000)
但是,如果 time.time()
返回一个 float ,你不会有精度问题吗?会有一些值不能准确地表示为 float 。
我担心一些小数时间不能正确表示为 float ,并且在这些情况下时间戳向前或向后跳跃。
这是一个合理的担忧吗?
如果是,解决方法是什么?
最佳答案
你想要多少精度?虽然确实有有限的小数不能表示为有限的二进制小数,但只要您不为运行 143 千年的程序计时,最接近的近似值就会四舍五入到正确的整数毫秒数( 2**52 毫秒)。
简而言之:我认为您不必为此担心浮点精度。不过,您可能需要担心系统计时器的准确性、精度或单调性。
关于python - 在 Python 中,time.time() * 1000 是否足够精确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13280743/