Как округлить число в паскале
Перейти к содержимому

Как округлить число в паскале

  • автор:

Функция Round Pascal-Паскаль

Round: Округляет значение вещественного типа до значения целочисленного типа.

Объявление: Function Round(X: Real): Longint;
Режим: Windows, Real, Protected

Замечания:

X — выражение с реальным типом. Round возвращает значение типа Longint, которое является значением X, округленного к самому близкому целому числу. Если X — ровно посередине между двумя целыми числами, то результатом будет число с самой большой абсолютной величиной.

Если округленное значение X ненаходится внутри допустимого диапазона Longint, то происходит ошибка во время выполнения программы.

Пример функции Round

Begin
WriteLn(1.4, ‘ округленно = ‘, Round(1.4));
WriteLn(1.5, ‘ округленно = ‘, Round(1.5));
WriteLn(-1.4, ‘ округленно = ‘, Round(-1.4));
WriteLn(-1.5, ‘ округленно = ‘, Round(-1.5));
End.

Программирование

Исходники Pascal (127)

Справочник

Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту

Счетчики

2008—2024 © pascal.helpov.net | All Rights Reserved

Функция Round

Основы программирования 2.0

Функция Round в Паскале округляет значение с плавающей точкой до ближайшего целого числа. Синтаксис:

function Round(X: ValReal) : Int64;

Функция Round округляет Х до ближайшего целого числа и возвращает значение, которое может быть как меньше, так и больше исходного значения вещественного числа Х.

О типе ValReal я рассказывал здесь.

Правило округления числа

Округление вещественного числа Х выполняется по следующему правилу:

  1. Если дробная часть числа Х меньше 0.5, то число Х округляется в меньшую сторону.
  2. Если дробная часть числа Х больше 0.5, то число Х округляется в большую сторону.
  3. Если дробная часть числа Х равна 0.5, то используется особый принцип округления числа, так называемое “Банковское округление”. То есть когда число округляется всегда в сторону чётного числа.

Примеры округления чисел

Исходя из вышесказанного функция Round будет возвращать следующие результаты при округлении чисел:

Round(55.3) = 55 Round(55.6) = 56 Round(55.5) = 56 Round(56.5) = 56

Ну и напоследок пример программы:

program funcround;  var x : Real; y, z : integer; begin y := 100; x := 55.7; //z := y + x; //. Неправильно z := y + Round(x); //Правильно, z = 156 WriteLn(z); WriteLn('Round(55.3) = ', Round(55.3)); WriteLn('Round(55.6) = ', Round(55.6)); WriteLn('Round(55.5) = ', Round(55.5)); WriteLn('Round(56.5) = ', Round(56.5)); ReadLn; end.

Обратите внимание в примере на закомментированную строку. Так делать нельзя, потому что в Паскале не допускается присваивать целочисленным переменным вещественные значения.

Поэтому, если необходимо сложить две переменных — целую и вещественную, а результат поместить в целую, то надо использовать какую-либо из подпрограмм преобразования типов. Например, функцию Round.

Также обратите внимание, что функция Round возвращает число типа Int64. Этот тип НЕ является порядковым типом данных. Это значит, что по идее функцию Round нельзя использовать в конструкциях, требующих применения порядковых типов. Например, с оператором case.

То есть по идее компилятор должен выдать ошибку, если в вашей программе будет что-то типа того:

case Round(x) of 56 : WriteLn('x = 56'); end;

Однако я проверил. Программа компилируется и работает нормально. И всё же я не советую использовать в ваших программах конструкции, которые противоречат документации. Если необходимо использовать результат функции Round в подобных ситуациях, то лучше сначала присвоить результат какой-нибудь переменной порядкового типа, а потом уже эту переменную использовать с таким операторами, как case.

Функция Round

Основы программирования 2.0

Функция Round в Паскале округляет значение с плавающей точкой до ближайшего целого числа. Синтаксис:

function Round(X: ValReal) : Int64;

Функция Round округляет Х до ближайшего целого числа и возвращает значение, которое может быть как меньше, так и больше исходного значения вещественного числа Х.

О типе ValReal я рассказывал здесь.

Правило округления числа

Округление вещественного числа Х выполняется по следующему правилу:

  1. Если дробная часть числа Х меньше 0.5, то число Х округляется в меньшую сторону.
  2. Если дробная часть числа Х больше 0.5, то число Х округляется в большую сторону.
  3. Если дробная часть числа Х равна 0.5, то используется особый принцип округления числа, так называемое “Банковское округление”. То есть когда число округляется всегда в сторону чётного числа.

Примеры округления чисел

Исходя из вышесказанного функция Round будет возвращать следующие результаты при округлении чисел:

Round(55.3) = 55 Round(55.6) = 56 Round(55.5) = 56 Round(56.5) = 56

Ну и напоследок пример программы:

program funcround;  var x : Real; y, z : integer; begin y := 100; x := 55.7; //z := y + x; //. Неправильно z := y + Round(x); //Правильно, z = 156 WriteLn(z); WriteLn('Round(55.3) = ', Round(55.3)); WriteLn('Round(55.6) = ', Round(55.6)); WriteLn('Round(55.5) = ', Round(55.5)); WriteLn('Round(56.5) = ', Round(56.5)); ReadLn; end.

Обратите внимание в примере на закомментированную строку. Так делать нельзя, потому что в Паскале не допускается присваивать целочисленным переменным вещественные значения.

Поэтому, если необходимо сложить две переменных — целую и вещественную, а результат поместить в целую, то надо использовать какую-либо из подпрограмм преобразования типов. Например, функцию Round.

Также обратите внимание, что функция Round возвращает число типа Int64. Этот тип НЕ является порядковым типом данных. Это значит, что по идее функцию Round нельзя использовать в конструкциях, требующих применения порядковых типов. Например, с оператором case.

То есть по идее компилятор должен выдать ошибку, если в вашей программе будет что-то типа того:

case Round(x) of 56 : WriteLn('x = 56'); end;

Однако я проверил. Программа компилируется и работает нормально. И всё же я не советую использовать в ваших программах конструкции, которые противоречат документации. Если необходимо использовать результат функции Round в подобных ситуациях, то лучше сначала присвоить результат какой-нибудь переменной порядкового типа, а потом уже эту переменную использовать с таким операторами, как case.

Округление числа

Author24 — интернет-сервис помощи студентам

Округление числа
Округлить к ближайшему целому заданное вещественное число.
Округление к ближайшему целому (англ. round) — наиболее часто используемое округление. Число в десятичной системе округляют до N-ого знака в зависимости от N+1 знака:
если N+1 знак < 5, то N-ый знак сохраняют, а N+1 и все последующие обнуляют;
если N+1 знак ≥ 5, то N-ый знак увеличивают на единицу, а N+1 и все последующие обнуляют.
Например: 11,9 → 12; −0,9 → −1; −1,1 → −1; 2,5 → 3; -4.5 → -4.

Во входном потоке задано вещественное число А (-30000 < A < 30000)

Выходные данные:
В выходной поток вывесли единственное целое число.

Пример входного файла (input.txt):
-3.5
Пример выходного файла (output.txt):
-3

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Округление числа
Привет обитателям форума. У меня такое задание: Округлить к ближайшему целому заданное.

Округление
Помогите решить:если вводиться число 1.7 то выводиться Round(1.7)=2,а если число 6.3 то .

Округление чисел
Добрый день! Помогите,пожалуйста.Есть программа,нужно максимально подробное описание для неё.То.

Округление значения функции
Можете проверить код? Program z2; Var a,b:integer; y:real; begin Writeln(‘Введите a.

9874 / 5242 / 3306
Регистрация: 17.08.2012
Сообщений: 16,012

1 2 3 4 5 6 7
var n: real; i: integer; begin read(n); i := round(n); write(i) end.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *