我正在使用Python中的游泳结果(来自外部xls源),我需要将浮点数转换为时间格式 - 分钟,秒和微秒 - 来执行加法和减法运算。 我正在使用这个功能:
from datetime import timedelta
def format_result(result):
seconds = int(result)
microseconds = int((result * 1000000) % 1000000)
output = timedelta(0, seconds, microseconds)
return output
当给定输入为131.39时,输出应为0:02:11.390000,但实际上为0:02:11.389999。 如何在没有此精度错误的情况下正确转换?
答案 0 :(得分:3)
您需要做的就是将其转换为UTC时间和format
日期时间
>>> import datetime
>>> datetime.datetime.strftime(datetime.datetime.utcfromtimestamp(131.39), "%M:%S:%f")
'02:11:390000'
你需要做什么,
import datetime
def format_result(result):
date = datetime.datetime.utcfromtimestamp(result)
output = datetime.datetime.strftime(date, "%M:%S:%f")
return output
print format_result(131.39)
希望这会有所帮助。
答案 1 :(得分:0)
我试过没有把它转换成int
,它运行正常,因为你的表达它给了390000 .... !!
from datetime import timedelta
def format_result(result):
seconds = int(result)
microseconds = (result * 1000000) % 1000000
output = timedelta(0, seconds, microseconds)
return output
print format_result(131.39)