select str (f, 32, 16) 'Raw Data'
,ceiling (f * 0.001) * 1000 'Round up to 1000s'
,ceiling (f / 1.000000000000001 * 0.001) * 1000 'Round up to 1000s w/tolerance'
You can use similar logic for rounding down by multiplying by a number just greater than 1.
This "tolerance" takes care of the situations where you have a floating point number like 2.00000000000001 or 1.9999999999998 or something that you "know" is really. These numbers will show as 2.00 if printed using str() or something but will round to 1 or 3 without the "tolerance" adjustment.