Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

не пойму, что делает функция Round... [D5, D6, Win95/98]


Страницы:   1 2

BillyJeans ©   (2002-12-25 14:27:00) 

не пойму, что делает функция Round...
По описанию должна округлять, что она и делает, но делает она это весьма странно:
Round(0.5) = 0
Round(1.5) = 2
Round(2.5) = 2
Round(3.5) = 4
Round(4.5) = 4
Объясните мне пожалуйста что это, и что мне сделать, чтобы получить следующее:
Round(0.5) = 1
Round(1.5) = 2
Round(2.5) = 3
Round(3.5) = 4
Round(4.5) = 5
???


Anatoly Podgoretsky   (2002-12-26 09:55:00) [21]

Ну знаешь, есть предположения, что вас в школе учат не тому.


BillyJeans   (2002-12-26 09:44:00) [22]

4 PKT
и что же это за округление такое, зачем оно нужно?
чему нас в школе учат, разве этому?
мне нужно нормальное, человеческое округление....


Anatoly Podgoretsky   (2002-12-26 09:40:00) [23]

BillyJeans © (26.12.02 08:53)
В этот не погорячился, даст именно 1
А вот для случая -0,3 + 0,5 или -0,6 + 0,5

Такие вещи надо делать с учетом знака


PKT   (2002-12-26 09:22:00) [24]

Кстати, ничего странного Round не делает.
В Help-е же сказано, if X is exactly halfway between two whole numbers, the result is always the even number.
То есть до ближайшего четного.


Кулюкин Олег   (2002-12-26 09:15:00) [25]

2 BillyJeans © (26.12.02 08:53)
Trunc(X + 0.5)


PKT   (2002-12-26 09:14:00) [26]

Понимаю, что это не есть хорошо,
но округляю так:
Round(Число + e);
где е - число, заведомо меньшее применяемой в расчетах точности
Ну, что-то вроде 0.000000000001


BillyJeans   (2002-12-26 08:53:00) [27]

Мда, что-то я погоречился с Round(X + 0.5)....
потому, как Round(0.3 + 0.5) не даст мне 0!
Неужели никто не сталкивался с округлением, или всем без разницы, как там округляется?


BillyJeans   (2002-12-25 17:25:00) [28]

4 Колюкин Олег
функция Ceil округляет до целого в большую сторону, т.е. Ceil(1.1) = 2! Что противоречит понятиям об округлении :((
Хотя Round(X + 0.5) должно помочь...


alxx   (2002-12-25 17:13:00) [29]

Не, ну Trunc(0.1)+1 определенно не возвращает округленного числа.


Ipx   (2002-12-25 16:47:00) [30]

4 Anatoly Podgoretsky
В предыдущем своем ответе не заметил, что вместо Round, появилось Trunc. Здесь всего-навсего нужно помнить, что Round возвращает Real, а Trunc - Integer.


Mike Kouzmine   (2002-12-25 16:42:00) [31]

RoundTo


Anatoly Podgoretsky   (2002-12-25 16:08:00) [32]

Ipx © (25.12.02 16:05)
А ты попробуй прежде чем смеяться, хорошо смеется тот кто смеется последний


Ipx   (2002-12-25 16:05:00) [33]

2 Kair
А если Trunc(0.55)+1,
что тогда получим?, скорее всего 2 -:(((


Anatoly Podgoretsky   (2002-12-25 16:00:00) [34]

Kair (25.12.02 15:53)
Новое слово в математике?
Попробуй для 0,3


Kair   (2002-12-25 15:53:00) [35]

Trunc(x)+1


Кулюкин Олег   (2002-12-25 14:46:00) [36]

Round(X + 0.5) или Ceil из юнита Math


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо