Just convert to seconds and do the original operation: floored modulo.
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