![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не пойму, что делает функция Round... [D5, D6, Win95/98]
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