Fix a regression where zooming to a very small number (1e-20) would cause the WM_PAINT handler to coerce a large number into an integer, resulting in an unhandled floating point exception. My fix was to keep the numbers as floating point values until they had been clipped into the proper range before converting them back into ints.