Minute has 60 seconds,
Hour has 3600 seconds,
Day has 86400 seconds,
Multiply your (0-1) float by 86400 (let's call it total_seconds),
1) Floor of division of total_seconds by 3600 will be your hours
2) Subtract hours*3600 from your total_seconds
3) Floor of division of total_seconds by 60 will be your minutes
4) Subtract minutes*60 from your total_seconds
6) What's left will be your seconds
DECLARE @raw_input FLOAT = 0.999305555555556
DECLARE @total_seconds INT
DECLARE @hours INT, @minutes INT, @seconds INT
SET @total_seconds = @raw_input * 86400
SET @hours = FLOOR(@total_seconds/3600)
SET @total_seconds = @total_seconds - @hours * 3600
SET @minutes = FLOOR(@total_seconds/60)
SET @seconds = @total_seconds - @minutes * 60
Edit: or much simpler, adapting a similar question/answer:
DECLARE @raw_input FLOAT = 0.999305555555556
DECLARE @secondss decimal = @raw_input*86400
SELECT CAST(CONVERT(VARCHAR,DATEADD(SECOND, @secondss, 0),108) AS TIME)
>23:59:00.0000000