You might try using 5.8.0 RC1. Changes were made in 5.8.0 to attempt to preserve integers whenever possible. 5.6.1 and earlier will "promote" integers to floating point even when that will cause a loss of precission.
Thanks for the help, sam. I thought about trying out 5.8.0; I'm glad to hear that the behavior may have improved. However, I think I'll use the 'use integer' solution until most of my expected user base has moved to 5.8.0. I appreciate your help.