is it worth a check, if it's within 0.000001 of a long, convert to long; and if it's within the range of an integer, convert to int ?