округление числа |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
округление числа |
Гость |
Сообщение
#1
|
Гость |
Как мне правильно округлить число?
|
Perfez |
Сообщение
#2
|
Бывалый Группа: Пользователи Сообщений: 231 Пол: Женский Репутация: 6 |
Round(x)?
|
мисс_граффити |
Сообщение
#3
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
Смотря какое округление нужно.
Допусим, из 4.5 что ты хочешь получить? 4 или 5? Есть арифметическое округление, округление в большую или меньшую сторону. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Bard |
Сообщение
#4
|
Учиться, учиться еще раз учиться Группа: Пользователи Сообщений: 158 Пол: Мужской Реальное имя: Яшар Репутация: 3 |
Perfez, ты не совсем прав ведь по математически округление(4.5)=5 а round(4.5)=4 ...
так что лучше при таких случаях просто написать round(4.5)+1 .... вот и все .... -------------------- Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё |
volvo |
Сообщение
#5
|
Гость |
Цитата а round(4.5)=4 Да? С каких это пор?Цитата(TP Help) Round (function) Rounds a Real-type value to an Integer-type value. Declaration: function Round(X: Real): Longint; Remarks: X is a real-type expression. Round returns a Longint value that is the value of X rounded to the nearest whole number. If X is exactly halfway between two whole numbers, the result is the number with the greatest absolute magnitude. A run-time error occurs if the rounded value of X is not within the Longint range. |
мисс_граффити |
Сообщение
#6
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
что за бред? trunc(4.5)=4, это не спорю.
Цитата round(4.5)+1 а если у нас будет не 4.5, а 3.2? даже по твоей логике - это не будет математическим округлением. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Bard |
Сообщение
#7
|
Учиться, учиться еще раз учиться Группа: Пользователи Сообщений: 158 Пол: Мужской Реальное имя: Яшар Репутация: 3 |
Volvo, ведь ты же говорил что ты никогда не ставишь не скомпилировав программу ... а вот теперь сделай одолжение напиши такую программу и прогони ...
мисс_граффити, я же не сказал что round(3.2) не равно 3 и даже round(4.6) равно 5, но round(4.5) равно 4 если не веришь, проверь Сообщение отредактировано: Bard - -------------------- Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё |
Lapp |
Сообщение
#8
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Хм.. Действительно, FPC мне округлил половину до меньшего числа..
BP сработал правильно. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
Сообщение
#9
|
Гость |
Bard,
Еще вопросы есть? А теперь ТЫ мне сделай одолжение: посмотри на название раздела, и прогони программу на СООТВЕТСТВУЮЩЕМ компиляторе! (и не забудь учесть, что НЕ У ВСЕХ сопроцессор по умолчанию включен, его ж еще надо подключить !!!) Так что, делай выводы... А на FPC тестировать будешь программы для раздела "32-битные компиляторы"... P.S. Цитата(Lapp) Хм.. Действительно, FPC мне округлил половину до меньшего числа.. Ничего подобного... Я про то, что НЕ ВСЕГДА - до меньшего... Попробуй округлить 7.5 - тебя ждет сюрприз...Цитата(RTL.pdf) 29.9.451 round Synopsis: Round floating point value to nearest integer number. Declaration: function round(d: ValReal) : Int64 Visibility: default Description: Round rounds X to the closest integer, which may be bigger or smaller than X. In the case of .5, the algorithm uses "banker’s rounding": .5 values are always rounded towards the even number. Errors: None. Сообщение отредактировано: volvo - |
Bard |
Сообщение
#10
|
Учиться, учиться еще раз учиться Группа: Пользователи Сообщений: 158 Пол: Мужской Реальное имя: Яшар Репутация: 3 |
Цитата Хм.. Действительно, FPC мне округлил половину до меньшего числа.. BP сработал правильно. ну вот и я об этом... а так конечно же я знаю что при округлении 4.5 ответ должен быть 5... Цитата Ничего подобного... Я про то, что НЕ ВСЕГДА - до меньшего... Попробуй округлить 7.5 - тебя ждет сюрприз... я все понял... спасибо -------------------- Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё |
TIGER535 |
Сообщение
#11
|
Гость |
а есть еще вопросик, как округлить число в большую/меньшую сторону независимо от дробной части
т.е. например в большую 3,2 = 4 3,8 = 4 3,1 = 4 |
volvo |
Сообщение
#12
|
Гость |
Цитата как округлить число в большую/меньшую сторону независимо от дробной части Отбросить дробную часть (Trunc-ом) и прибавить 1 к результату. Можно проверить дробную часть, и прибавлять 1 только если она ненулевая. |
Гость |
Сообщение
#13
|
Гость |
спасибо, а как проверить?
|
Кулер |
Сообщение
#14
|
Гость |
|
Текстовая версия | 19.04.2024 18:18 |