RoundTo и SimpleRoundTo в Delphi

Практически всегда при вычислении дробных чисел результатом выходит значение с большим количеством знаков после запятой, что неудобно для восприятия человека. Людям удобно воспринимать дробные числа, когда в дробной части максимум четыре знака. Значит, число-результат нужно привести к удобочитаемому виду. Числа можно округлить с помощью функций RoundTo() и SimpleRoundTo().

Для начала нужно подключить модуль математических функций Math, чтобы получить доступ к интересующим нас функциям.

Синтаксис функции RoundTo() таков:

RoundTo(число; кол-во_знаков);

function RoundTo(const AValue: Double; const ADigit: TRoundToRange): Double;

Здесь AValue – округляемое число типа Double, объявленное как константа. ADigit – порядок округления, то есть фактически количество знаков, которое должно остаться в дробной части после округления. ADigit также объявлен как константа типа TRoundToRange. Сама функция тоже имеет тип Double. На будущее заметим, что опытные программисты используют для хранения вещественных чисел не Double, а Extended, как более точный тип. Кроме того, для чисел, округляемых не более чем до четвертого знака после запятой, можно использовать тип Currency, который хранит данные как масштабированное целое значение, исключая проблему с погрешностями при вычислениях.

Приведем пример округления значение переменной V до двух знаков после запятой. В переменную V записываем новое значение:

V:=RoundTo(V, -2);
Приведем пример деления двух чисел:

var R1,R2,R: Real;

begin

R1:=152;

R2:=490;

R:=R1/R2;

R:=RoundTo(R, -2);

end;

Функция SimpleRoundTo() сходна с RoundTo() – различие лишь в способе округления последнего знака. SimpleRoundTo() округляет последнее число в большую сторону, а RoundTo() использует так называемое банковское округление, приводя число к ближайшему четному. Добавим, что обе функции умеют округлять не только дробные, но и целые числа, обнуляя разряды младше указанного порядка. Так, например, если округлять число 1234567, указав количество разрядов (ADigit) равное трем, то на выходе получим число 1234000.

. delphi тип Extended формат хранения
. pascal округление числа в большую сторону
Комментирование и размещение ссылок запрещено.