我需要nanosec的當前時間。 作爲字符串"%.9f" % float_time
它是1502872986.6536936 。最後你可以看到76。 如果我嘗試寫的同時,INT int(float_time*10**9)
,這將是15028729866536936 和96底。爲什麼?哪個是獲得納米格式的正確途徑?字符串和int格式的浮點差異。爲什麼?
from time import time
float_time = time()
print("float_time:", float_time)
int_nano_time = int(float_time*10**9)
print("int_nano_time:", int_nano_time)
str_nano_time = "%.9f" % float_time
print("str_nano_time:", str_nano_time)
float_time:1502872986.6536937
int_nano_time:1502872986653693696
str_nano_time:1502872986.653693676
解決方案:
time.monotonic()
float_time:536596.296
int_nano_time:5365962.96億
str_nano_time:536596.296000000
[Python使用IEEE-754雙精度(https://docs.python.org/3.3/tutorial/floatingpoint.html),因此具有在有效數部分只有53位,它們是約15〜17個十進制數字(1502872986.6536936有17位有效數字,其餘只是噪聲) –
@Elena很可能返回的'time()'不正確到納秒精度。 –
@AnttiHaapala是否有可能在Python中獲得int int的nanosec?在C++世界裏,他們沒有問題,因爲他們在64位int中得到它。他們不符合IEEE754。 – Elena