在Python中将十进制时间数(如23.33154)转换为秒?

在Python中将十进制时间数(如23.33154)转换为秒?,python,math,time,logic,data-conversion,Python,Math,Time,Logic,Data Conversion,我正在尝试将十进制时间数(如23.456、0.5555、1.9999等)转换为秒(作为整数) 我制作了一个函数,可以将十进制时间转换为小时和分钟。 例如,转换为小时: def decimal_to_hours(t) return math.floor(t) 对于十进制时间,以分钟为单位: def decimal_to_mins(t) if t < 1: return math.floor(t * 60) if t % 1 == 0:

我正在尝试将十进制时间数(如23.456、0.5555、1.9999等)转换为秒(作为整数)

我制作了一个函数,可以将十进制时间转换为小时和分钟。 例如,转换为小时:

def decimal_to_hours(t)
    return math.floor(t)
对于十进制时间,以分钟为单位:

def decimal_to_mins(t)
    if t < 1:
        return math.floor(t * 60)

    if t % 1 == 0:
        return 0

    elif t > 1:
        return math.floor((t - math.floor(t)) * 60) 
def十进制到分钟(t)
如果t<1:
返回数学楼层(t*60)
如果t%1==0:
返回0
如果t>1:
返回数学楼层((t-数学楼层(t))*60)

所以我的问题是我不知道如何将分数转换成秒。任何帮助都将不胜感激。

只需转换为秒并执行原始操作:地板模

from math import floor

time_hours = 23.99431
time_minutes = time_hours * 60
time_seconds = time_minutes * 60

hours_part   = floor(time_hours)
minutes_part = floor(time_minutes % 60)
seconds_part = floor(time_seconds % 60)

print("{h}:{m}:{s}".format(h=hours_part, m=minutes_part, s=seconds_part))
#>>> 23:59:39

只需转换为秒,并执行原始操作:地板模

from math import floor

time_hours = 23.99431
time_minutes = time_hours * 60
time_seconds = time_minutes * 60

hours_part   = floor(time_hours)
minutes_part = floor(time_minutes % 60)
seconds_part = floor(time_seconds % 60)

print("{h}:{m}:{s}".format(h=hours_part, m=minutes_part, s=seconds_part))
#>>> 23:59:39

同时假设小数点不能超过23.99999999“十进制时间”代表什么?它的数据类型是什么?十进制时间是一个浮点数,例如,t=23.99431应该返回39秒。这是一个数学/逻辑问题,而不是Python问题。好的,有什么输入吗?我添加了“数学”和“逻辑”作为标签。很抱歉,如果我的帖子礼仪不好,这是我第一次使用这个网站。还假设小数点不能超过23.9999999999“小数点时间”是什么“代表?它的数据类型是什么?十进制时间是一个浮点数,例如,t=23.99431应该返回39秒。这是一个数学/逻辑问题,而不是Python问题。好的,有什么输入吗?我添加了“数学和“逻辑”作为标签。如果我的帖子礼仪不好,很抱歉,这是我第一次使用这个网站。也许
“{h}:{m:02d}:{s:02d}”
?为什么“hours\u part=floor(time\u hours%60)”而不是“floor(time\u hours)”(如果原始值是25.99431)?@TimRichardson-Erm,我的意思是
%24
。即使如此,如果我不打印天也没有多大意义。谢谢!也许
“{h}:{m:02d}:{s:02d}”
?为什么“hours\u part=floor(time\u hours%60)”而不是“floor(time\u hours)”(如果原始值是25.99431)?@TimRichardson-Erm,我的意思是
%24
。即使如此,如果我不打印天,也没什么意义。谢谢!