![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Веб-разработчик
Форумчанин
Регистрация: 16.01.2008
Сообщений: 451
|
![]()
странная вещь round, решил округлить число 1.5 с целью проверки как он округлит...потом проверил 2.5 и заметил странную вещь, он округляет как захочет тобишь 1.5 до 2-х и 2.5 тоже до 2-х, почему так?
Код:
Я ваш новый друг, смиритесь!
![]() |
![]() |
![]() |
![]() |
#2 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,672
|
![]()
Да именно так. потому для точных вычислений нужно использовать trunc - отбрасывание дробной части.
А где здесь random? Для рандома есть специальный термин - условно случайное. Вообще про точность в случайных числах говорить сложно ![]() |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Вообще-то всё что вы изучали в школе по поводу округления - лишь приближение. По правилам число с половиной должно округляться до следующего целого, если целая часть нечётная, иначе до предыдущего
1,5 - 2 2,5 - 2 3,5 - 4 4,5 - 4 |
![]() |
![]() |
![]() |
#4 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,672
|
![]()
eoln, а как официально называется это правило?
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Alar, увы не помню (или не знаю), но на численных методах в универе мы это проходили. Даже вопрос такой был на зачёте.
добавлено вот тут нашёл упоминание об этом, правило называется №3 ![]() Последний раз редактировалось eoln; 09.09.2008 в 20:55. |
![]() |
![]() |
![]() |
#6 |
Веб-разработчик
Форумчанин
Регистрация: 16.01.2008
Сообщений: 451
|
![]()
мммм, теперь понятно, а то я никак не мог найти логики в его действиях.
Я ваш новый друг, смиритесь!
![]() |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
Вы бы школьную алгебру учили нормально и тогда Америку бы не открывали.
|
![]() |
![]() |
![]() |
#8 | |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
![]()
В "школьной" алгебре как раз всё однозначно: все половины округляются в большую сторону. Но если следовать этому правилу, то у бухгалтера никогда баланс не сойдётся. Поэтому, то, что написано выше называется бухгалтерским округлением.
Вот выдержка из help-а delphi для функции round Цитата:
|
|
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
Извините, _Dmitrty, но не соглашусь. Вот выдержка из алгебры:
Цитата:
|
|
![]() |
![]() |
![]() |
#10 | |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,672
|
![]()
Нас учили в школе, давно это было, что 2.5 нужно округлять до 3-х. Но недавно узнал о такой особенности, как округление до четного, потому в будущем буду использовать только отбрасывание остатка после запятой - Trunc
Не думал, что про такую простую функцию, как Round, придется перечитывать справочник "Основы delphi" _Dmitry, привожу вашу цитату на русском, или то что там имелось ввиду - Цитата:
|
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
random в С++ | Swool | Общие вопросы C/C++ | 21 | 18.02.2012 21:55 |
Random | Febreze | Общие вопросы Delphi | 2 | 28.04.2008 14:17 |
Random -10 +10 | Veiron | Общие вопросы Delphi | 1 | 23.01.2008 17:23 |
Random | Constellation | БД в Delphi | 2 | 10.01.2008 21:37 |
random | Sanek_ntsk | Общие вопросы Delphi | 8 | 17.12.2007 21:54 |