如何在 Python 中将浮点数转换为时间格式——分钟、秒和微秒?

0 python

我正在 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
Run Code Online (Sandbox Code Playgroud)

当给定的输入是 131.39 时,输出应该是 0:02:11.390000 但实际上是 0:02:11.389999。如何在没有此精度错误的情况下正确转换?

Aru*_*n G 6

您需要做的就是将其转换为 UTC 时间和format日期时间

>>> import datetime
>>> datetime.datetime.strftime(datetime.datetime.utcfromtimestamp(131.39), "%M:%S:%f")
'02:11:390000'
Run Code Online (Sandbox Code Playgroud)

你需要做什么,

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)
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助。