• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Delphi функция округления делфи

  • Автор темы Автор темы Lomanu4
  • Дата начала Дата начала

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,467
Баллы
155
Метод округления
Округление — очень широко используемый метод приближенного расчета, который бывает двух видов: метод арифметического округления и метод банковского округления.
Так называемый метод арифметического округления — это метод округления в обычном для нас понимании. Правило таково: когда значение округленной цифры больше или равно 5, цифра округляется и цифра увеличивается на единицу; когда значение округляемой цифры меньше 5, цифра округляется напрямую. .
Так называемый банковский метод округления — это, по сути, метод округления до пяти с оставлением двойных значений (также известный как округление до пяти нечетных-четных). Правило таково: когда значение округленной цифры меньше 5, цифра сразу отбрасывается; когда значение округленной цифры больше или равно 6, цифра округляется и вперед на одну цифру; значение округленного разряда округляется При равенстве 5, если значение предыдущего разряда нечетное, разряд округляется и предыдущее разряд увеличивается на единицу, если значение предшествующего разряда четное, то цифра сразу отбрасывается.
Подводя итог, можно сказать, что результаты, полученные двумя методами округления, несовместимы, поэтому их необходимо различать в соответствии с фактическими потребностями при их использовании. В противном случае будут какие-то необъяснимые отклонения.
Во-вторых, функция округления в Delphi.
Как мы все знаем, в Delphi есть функция округления Round. Но он реализует операцию округления по правилам банковского метода округления, а в Delphi нет функции округления, реализующей операцию округления по арифметическому методу округления. Для этого я написал функцию округления RoundEx, основанную на арифметическом методе округления, как дополнение к Delphi. Конкретная реализация выглядит следующим образом:

Код:
function RoundClassic(R: Real): Int64;
begin
  Result:= Trunc(R);
  if Frac(R) >= 0.5 then
    Result:= Result + 1;
end;
 
Вверх Снизу