A simple rewrite givesDECLARE @Sample TABLE (f FLOAT)INSERT @SampleSELECT 1.34 UNION ALLSELECT 114.78 UNION ALLSELECT 10 UNION ALLSELECT -20 UNION ALLSELECT -31.4159 UNION ALLSELECT 45.67SELECT f, CASE WHEN LowerLimit = HigherLimit AND f >= 0.0 THEN LowerLimit - 10 ELSE LowerLimit END AS LowerLimit, CASE WHEN LowerLimit = HigherLimit AND f < 0.0 THEN HigherLimit + 10 ELSE HigherLimit END AS HigherLimitFROM ( SELECT f, CAST(FLOOR(f / 10.0) AS INT) * 10 AS LowerLimit, CAST(CEILING(f / 10.0) AS INT) * 10 AS HigherLimit FROM @Sample ) AS d
E 12°55'05.25"N 56°04'39.16"