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


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

Группа: Пользователи
Сообщений: 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 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





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