This is an interesting approach!
However, since float is not exact value there might be a difference in result. But since we only want to keep day information that might not be a problem.
If you have the time, run your test-code again with this code
select cast(cast(getdate() as int) as datetime)
N 56°04'39.16"
E 12°55'05.25"