ОК.
Если у нас длинна цифры = 2, то округляем один разряд.
Если длинна цифры = 3, то округляем 2 разряда,
Если длинна цифры = 4, то округляем 3 разряда, и т.д.
Исключение - один разряд, всегда округляем до 10.
Соответсвенно, код будет выглядеть примерно так:
Код:
function RoundSpecial(N : Integer) : Integer;
var
Buf : String;
begin
Buf := IntToStr(Abs(N)); // Abs - убираем "-"
If Length(Buf) = 1
Then Result := Sign(N) * 10 // Sign - возвращаем "-"
Else Result := RoundTo(N,-1 * (Length(Buf)-1));
end;