IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Округление числа
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской
Реальное имя: Левон

Репутация: -  -4  +


Здрасти ,имеется следущая проблемма:есть ,например, число 5.8 вопрос в том как "округлить" его до 5 в программе ? Оно может быть непредсказуемо, в зависимости от условия задачи.И 5.7 и 8.9 и 6.1 и 9.2 и.... а?

Сообщение отредактировано: leone.incognito -


--------------------
"Непросто тем,кто полагается на истину авторитета,вместо того,чтобы полагаться на авторитет истины"
Джэрольд Мэсси
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Это теперь называется "округление"? Вообще-то это больше похоже на "отбрасывание дробной части": смотри в сторону Trunc(X)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской
Реальное имя: Левон

Репутация: -  -4  +


Можно-ли сделать так:в числе после точки есть значения .если в них присутствует цифра 6 и больше то округляем число и вычитаем из него 1,ежели нет то просто округляем..........вопрос следуйщий.........как работать с тем что после точки?? cool.gif

Сообщение отредактировано: leone.incognito -


--------------------
"Непросто тем,кто полагается на истину авторитета,вместо того,чтобы полагаться на авторитет истины"
Джэрольд Мэсси
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






А теперь внимательно перечитай предыдущий пост, и объясни мне, что проще:
1) взять дробную часть, проверить, присутствует там 6 или нет (кстати, та еще проверочка может получиться, попробуй, развлекись на досуге, скажем, в дробной части 10.10127 тоже присутствует число больше 6, и что?), после чего округлить число и в случае положительного ответа на предыдущий вопрос еще вычесть 1,

или

2) воспользоваться той функцией, которую тебе уже посоветовали, и сразу отбросить дробную часть...

И заодно объясни, зачем ты задаешь вопросы, и после получения ответа говоришь, что "подумал и надо делать вот так..." Тебе никогда не казалось, что думать надо ДО того, как задавать вопрос?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской
Реальное имя: Левон

Репутация: -  -4  +


volvo!
1)мне нужно получить дробную часть, вычитывая из числа его-же только целое значение,притом оно не может быть на единицу больше чем целое с отбросом дробной части неокругленное число над которым выполняется расчёт;

чтоб было понятней вот пример:
дано число 4.567
Если мы его округлим то получим число пять,а число пять
будет по смыслу моей задачи неправильно ,поскольку
должно получиться число
четыре(из дроби вычитается дробная часть)
значит, мы вычитаем из
него один...но вдруг это будет число
4.289 и что, мы будем его округлять
и вычитать из него единицу?конечно нет .
вот я и спрашиваю как их различать.


P.S. чем я кого-то обидел?просто я не умею быстро отладно думать.

Сообщение отредактировано: leone.incognito -


--------------------
"Непросто тем,кто полагается на истину авторитета,вместо того,чтобы полагаться на авторитет истины"
Джэрольд Мэсси
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Есть функция round - округляет
Есть функция trunc - отбрасывает дробную часть
Есть функция frac - даёт дробную часть

trunc и frac с отрицательными числами с математической точки зрения работают неправильно:
trunc(-1.5) = -1 (на самом деле это -2)
frac(-1.5) = -0.5 (на самом деле это 0.5, и вообще дробная часть не может быть меньше нуля)

Да, в Паскале даже -1 mod 4 = -1 (отрицательный остаток от деления!!! Причём это похоже специально так сделали, потому что word(-1) mod 4 = 3, то есть на битовом уровне должно быть 3)

можно делать так x := frac(x); if x<0 then x := x + 1;
тогда будет правильно с точки зрения математики


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской
Реальное имя: Левон

Репутация: -  -4  +


VOLVO!!!!Sorry............


--------------------
"Непросто тем,кто полагается на истину авторитета,вместо того,чтобы полагаться на авторитет истины"
Джэрольд Мэсси
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 12:39
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name