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


Обратите внимание, на формат вывода на экран вещественных чисел. Паскаль выводит дробные числа на экран в виде числа с плавающей точкой (экспоненциальная форма). Эта запись является неудобной, поэтому для приведения ее к нормальному виду прибегают к форматированию. Для форматирования нужно в строке №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» если выдается ошибка?

делал прогу для вычисления дискриминанта на pascal ,так вот,при вычисление x1 и x2 выдает ошибку:Ошибка времени выполнения: Значение было недопустимо малым или недопустимо большим для Int32.
Я так понял что большей диапазон чисел и в int32 не помещаться. Как это решить?
- Вопрос задан более трёх лет назад
- 15230 просмотров
Комментировать
Решения вопроса 1
георгий воронько @georgey1999 Автор вопроса

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 3

Еда — это святое
А зачем округлять промежуточные значения? Округляйте уже конечный результат, либо вообще не округляйте его, а уже выводите в нужном формате.
Ответ написан более трёх лет назад
Комментировать
Нравится 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 |