Hello,
Arduino is definitely not alone in that respect. I can remember when MSSQL would respond to SELECT 1 with 0.9997...
I tried this in Excel and got similar results.
I think the problem is that because you say "(int)" that everything is being converted to an integer too soon and therefore things are lost in the rounding.
I think you would be better off leaving the minutes/seconds as a float and convert to int after dividing by 3600.