WITH t AS ( SELECT 1 v FROM dual UNION ALL SELECT 0.9 FROM dual UNION ALL SELECT 0.7 FROM dual UNION ALL SELECT 0.5 FROM dual UNION ALL SELECT 0.3 FROM dual UNION ALL SELECT 0.1 FROM dual UNION ALL SELECT 0.0 FROM dual UNION ALL SELECT -0.1 FROM dual UNION ALL SELECT -0.3 FROM dual UNION ALL SELECT -0.5 FROM dual UNION ALL SELECT -0.7 FROM dual UNION ALL SELECT -0.9 FROM dual UNION ALL SELECT -1.0 FROM dual ) SELECT v , ROUND(v) round_original , ROUND(v + 999) - 999 round_new FROM t ;