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

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

  • автор:

Функция 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

Функции trunc, round в Pascal.

Для того чтобы в Паскаль можно было оперировать не только целыми числами, но и дробными существуют вещественные типы данных. Один из таких типов называется Real. В этом уроке мы рассмотрим 2 функции, которые производятся над дробными числами. Это функция Trunc, которая округляет дробное число до целого, отбрасывая дробную часть и функция Round, которая округляет дробное число до ближайшего целого.

Program number10; uses crt; var N,K: integer; A,B: real; begin clrscr; N:=4; A:=3.6; B:=N; writeln('B=',B); N:=Trunc(A); writeln('Trunc(3.6)=',N); K:=Round(A); writeln('Round (3.6)=',K); readln end.

В строке №3 и №4 мы указали сразу 2 типа переменных. Для переменных N и K мы указали тип данных Integer, т.е. эти переменные могут принимать только целые значения в диапазоне от -32768 до 32767. Для переменных A и B мы указываем тип данных Real. Это вещественный тип данных, применяемый для переменных, которые могут принимать дробные значения в диапазоне от 2.9*10 -39 до 1.7*10 38 . Обратите внимание, что переменные разных типов указываются в разделе описания переменных через точку с запятой.

В строке №7 присваиваем переменной «N» значение «4».

В строке №8 присваиваем переменной «A» значение 3,6. Учтите, что при записи дробного числа в программе между целой и дробной частью ставится точка (а не запятая как при обычной записи).

Строка №9. Здесь переменной вещественного типа B мы присваиваем значение переменной целого типа N. Фактически мы присвоили переменной «B» значение 4. Таким образом, получается, что в переменную типа Real можно записать значение переменной Integer (т.е. целое число). А вот записать вещественное число в переменную Integer нельзя. Если нам необходимо это сделать, то мы должны определить, что делать с дробной частью. И здесь есть 2 варианта.

Строка №11. Функция trunk говорит нам о том, что при записи вещественного числа A в переменную целого типа K, дробная часть будет отбрасываться. Таким образом, получится, что переменной N будет присвоено значение не «3.6» , а просто «3».

Строка №13. Функция Round говорит нам о том, что при записи вещественного числа A в переменную целого типа K , число будет округляться до ближайшего целого. Таким образом, получится, что переменной K будет присвоено значение не «3.6» , а «4».

trunc round

trunc round.

trunc round..

Обратите внимание, на формат вывода на экран вещественных чисел. Паскаль выводит дробные числа на экран в виде числа с плавающей точкой (экспоненциальная форма). Эта запись является неудобной, поэтому для приведения ее к нормальному виду прибегают к форматированию. Для форматирования нужно в строке №10 (вывод на экран) сделать такие изменения: writeln(‘B=’,B:2:1). После переменной B мы через двоеточие записываем 2 числа. Первое число (в нашем случае «2») показывает, сколько всего знаков должно выводиться на экран, второе число («1») показывает количество знаков после запятой.
После внесения этих изменений в программу мы получим следующий результат:

Дополнение к материалу.

Ниже приведена таблица значений для различных вещественных типов данных.

Типы Диапазон допустимых значений Число значащих цифр Размер в байтах
Real 2.9*10 -39 .. 1.7*10 38 11-12 6
Single 1.5*10 -45 .. 3.4*10 38 7-8 4
Double 5.0*10 -324 .. 1.7*10 308 15-16 8
Extended 3.4*10 -4932 .. 1.1*10 4932 19-20 10
Comp -2*10 63+1 .. 1.7*10 63-1 19-20 8

Как округлить число до 2-3 знаков после запятой на «pascal.A.B.C» если выдается ошибка?

86f9446b3ca64e95b53b0cc0acee41a5.jpg

делал прогу для вычисления дискриминанта на pascal ,так вот,при вычисление x1 и x2 выдает ошибку:Ошибка времени выполнения: Значение было недопустимо малым или недопустимо большим для Int32.

Я так понял что большей диапазон чисел и в int32 не помещаться. Как это решить?

  • Вопрос задан более трёх лет назад
  • 15230 просмотров

Комментировать

Решения вопроса 1

георгий воронько @georgey1999 Автор вопроса

b8072b4d9df84b0fa0f88f7dd18da9ec.jpg

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Ответы на вопрос 3

SagePtr

Еда — это святое

А зачем округлять промежуточные значения? Округляйте уже конечный результат, либо вообще не округляйте его, а уже выводите в нужном формате.

Ответ написан более трёх лет назад

Комментировать

Нравится 1 Комментировать

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

Пользователь

Регистрация: 26.05.2012

Сообщений: 10

pascal:округлить число

Есть числло n.его нужно округлить до к знаков.Как это сделать?

nickolaeff
Посмотреть профиль
Найти ещё сообщения от nickolaeff

Регистрация: 09.01.2008

Сообщений: 26,238

Паскаль то какой?
в старом добром турбоПаскале можно было, например, так (для K=4) :

var X : double; . X := round(X*10000) / 10000;
Serge_Bliznykov
Посмотреть профиль
Найти ещё сообщения от Serge_Bliznykov

Пользователь

Регистрация: 26.05.2012

Сообщений: 10

Спасибо,сам разобрался

nickolaeff
Посмотреть профиль
Найти ещё сообщения от nickolaeff
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal] символы\байты в число (IP в число) Alex11223 Помощь студентам 4 21.01.2012 01:12
Как округлить вещественное число до 2 знаков после запятой roxy7 Microsoft Office Excel 2 06.12.2011 22:15
время округлить и перевести в число smrtipathaka Microsoft Office Excel 3 04.04.2011 12:08
как округлить число до десятой? StdentOfCollege Общие вопросы Delphi 4 05.04.2010 19:55
Как округлить число до сотых в Edit xxxsas Общие вопросы C/C++ 3 25.01.2009 09:04

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

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