avoiding rounding problem, fix #46111 and #49683

calculate with fraction like the hint instead of decimals.
39.9/12*60=199.49999999999997 is now 133/40*60=199.5
102.66666666666666/32*60=192.49999999999997 is now 77/24*60=192.5
Merge pull request #52272 from mauk81/patch-5

avoiding rounding problem, fix #46111; fix #49683; fix #52739