It would appear, from your examples, that the hours are already done. As minutes and seconds share a base of 60 parts per whole [next] unit, you really only need consider one conversion from decimal fraction (hundredths) to time based (sixtieths) - once for the fraction of hours to minutes, then again on the remainder for fractions of minutes to seconds. Some scaling will be necessary to address the integer math, but...
Fraction of an hour * 60 = minutes. Fraction of a minute * 60 = seconds.
So, if you have 1.125 hours: .125 hours * 60 = 7.5 minutes and .5 minutes * 60 = 30 seconds. 1.125 hours = 01:07:30. Again using your example of 4.23 hours:
.23 hours * 60 = 13.8 minutes. .8 minutes * 60 = 48 seconds = 04:13:48.
Perhaps I have misunderstood your OP, but it does not seem such a difficult exercise to me.




Bookmarks