Объясню на примере
мы вводим число n, после делим конкретно на одно из этих чисел на выбор 60, 50, 40, 110, 80, 3000
т. е. результат: =n/3000, если мы ввели n=60 то результат равен 0,02. а мне нужно любой результат округлять в большую сторону, в целое число. Как это сделать?
Другие языки программирования и технологии
PASCAL - Мне необходимо округлить число в большую сторону
> то результат равен 0,02. а мне нужно любой результат округлять в большую сторону
Т. е. округляя в большую сторону 0.02 получаем 1?
Int(результат) + 1
Trunc(результат) + 1
Int возвращает Real
Trunc - Longint
Т. е. округляя в большую сторону 0.02 получаем 1?
Int(результат) + 1
Trunc(результат) + 1
Int возвращает Real
Trunc - Longint
Сергей Кузнецов
trunc(1)+1=2. А просили округлить.
Александр Таранов
щас попробую
Господа надмозги, а как насчет функции Math.Ceil() ? В классическом паскале неужто нет ничего подобного?
На крайняк - моя кривая реализация:
function DivCeil(Divided, Divisor:extended):longint;
begin
if Frac(Divided/Divisor)>(1.0/Divisor) then
DivCeil:=Trunc(Divided/Divisor)+1
else
DivCeil:=Trunc(Divided/Divisor);
end;
На крайняк - моя кривая реализация:
function DivCeil(Divided, Divisor:extended):longint;
begin
if Frac(Divided/Divisor)>(1.0/Divisor) then
DivCeil:=Trunc(Divided/Divisor)+1
else
DivCeil:=Trunc(Divided/Divisor);
end;
Сырым Батыршаев
В turbo ceil нет. В делфи, фрипаскале - есть.
Если целое - оставь как есть, если дробь - увеличь на 1 и отбрось дробную часть.
Александр Таранов
я суть понимаю) а как это сделать?
дробь 0,02 округлить до целого? эм.. . не курите больше эту траву.
Александр Таранов
в точку)) игра травиан такая трава))) пытаюсь сделать програмку для неё))
Зачем так всё усложнять, в Turbo Pascal (Free PASCAL, Delphy ) есть функция Round() ;
http://tpdn.ru/guide/pf/round/
Округляет значение вещественного типа до значения целочисленного типа.
Объявление:
Function Round(X : Real) : Longint;
Режим: Windows, Protected, Real
{==============================================================}
Delphi :
begin
ShowMessage('Round(12.75) = '+IntToStr(Round(12.75)));
ShowMessage('Trunc(12.75) = '+IntToStr(Trunc(12.75)));
ShowMessage(' Int(12.75) = '+FloatToStr(Int(12.75)));
ShowMessage(' Frac(12.75) = '+FloatToStr(Frac(12.75)));
end;
Round(12.75) = 13
Trunc(12.75) = 12
Int(12.75) = 12
Frac(12.75) = 0.75
Замечания:
X - выражение с реальным типом. Round возвращает значение типа Longint, которое является значением X, округленного к самому близкому целому числу. Если X - ровно посередине между двумя целыми числами, то результатом будет число с самой большой абсолютной величиной. Если округленное значение X ненаходится внутри допустимого диапазона Longint, то происходит ошибка во время выполнения программы.
Пример:
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.
http://tpdn.ru/guide/pf/round/
Округляет значение вещественного типа до значения целочисленного типа.
Объявление:
Function Round(X : Real) : Longint;
Режим: Windows, Protected, Real
{==============================================================}
Delphi :
begin
ShowMessage('Round(12.75) = '+IntToStr(Round(12.75)));
ShowMessage('Trunc(12.75) = '+IntToStr(Trunc(12.75)));
ShowMessage(' Int(12.75) = '+FloatToStr(Int(12.75)));
ShowMessage(' Frac(12.75) = '+FloatToStr(Frac(12.75)));
end;
Round(12.75) = 13
Trunc(12.75) = 12
Int(12.75) = 12
Frac(12.75) = 0.75
Замечания:
X - выражение с реальным типом. Round возвращает значение типа Longint, которое является значением X, округленного к самому близкому целому числу. Если X - ровно посередине между двумя целыми числами, то результатом будет число с самой большой абсолютной величиной. Если округленное значение X ненаходится внутри допустимого диапазона Longint, то происходит ошибка во время выполнения программы.
Пример:
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.
Пользуйся функцией Trunc(R), где R - вещественное число. Она округляет в меньшую сторону) Потом просто прибавляй 1.
То есть: A:=Trunc(B)+1
То есть: A:=Trunc(B)+1
Назиф Хабибуллин
не работает при целых числах!
Олег Иванов
а если дробной части нет?
//ceil - округляет в большую сторону в целое число
var a:integer;
b:real;
…
a:= ceil(b);
write(a);
…
var a:integer;
b:real;
…
a:= ceil(b);
write(a);
…
Похожие вопросы
- язык СИ. НУЖНО ОКРУГЛИТЬ ЧИСЛО В БОЛЬШУЮ СТОРОНУ БЕЗ ФУНКЦИИ FLOOR ЗАРАНЕЕ СПАСИБО
- как решить через abc pascal задачу "Дано натуральное число n. Получить все простые делители этого числа"
- Pascal . Дан массив вещественных чисел. Найти сумму элементов, номера которых являются простыми числами
- Напишите программу к задаче в Pascal abc. Необходимо ввести три целых числа и определить, какое из них
- Можно ли округлить числа после точки в Базе Данных MYSQL
- Pascal - Вывести три наибольших числа
- Как в Pascal найти суму числел числа!?
- Pascal: Дано 3-значное число N.Определить,являются ли числа,из которых оно состоит членами геометрической прогрессии
- Pascal. Дана строка, элементы - числа через пробел. Как отсечь числа, которые содержат '0'?
- Pascal. Дан натуральный отрезок чисел [A,B]. Найти те числа этого отрезка, которые являются степенью двойки.