IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> округление числа
Гость
сообщение 12.05.2007 18:19
Сообщение #1


Гость






Как мне правильно округлить число?
 К началу страницы 
+ Ответить 
Perfez
сообщение 12.05.2007 18:24
Сообщение #2


Бывалый
***

Группа: Модераторы
Сообщений: 231
Пол: Женский

Репутация: -  6  +


Round(x)? smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 12.05.2007 18:28
Сообщение #3


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Смотря какое округление нужно.
Допусим, из 4.5 что ты хочешь получить? 4 или 5?
Есть арифметическое округление, округление в большую или меньшую сторону.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bard
сообщение 13.05.2007 12:04
Сообщение #4


Учиться, учиться еще раз учиться
***

Группа: Пользователи
Сообщений: 158
Пол: Мужской
Реальное имя: Яшар

Репутация: -  3  +


Perfez, ты не совсем прав no1.gif ведь по математически округление(4.5)=5 а round(4.5)=4 yes2.gif ...
так что лучше при таких случаях просто написать round(4.5)+1 nea.gif .... вот и все wink.gif ....


--------------------
Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.05.2007 12:11
Сообщение #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.

 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.05.2007 13:44
Сообщение #6


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


blink.gif что за бред? trunc(4.5)=4, это не спорю.
Цитата
round(4.5)+1

а если у нас будет не 4.5, а 3.2? даже по твоей логике - это не будет математическим округлением.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bard
сообщение 15.05.2007 7:32
Сообщение #7


Учиться, учиться еще раз учиться
***

Группа: Пользователи
Сообщений: 158
Пол: Мужской
Реальное имя: Яшар

Репутация: -  3  +


Volvo, ведь ты же говорил что ты никогда не ставишь не скомпилировав программу mad.gif ... а вот теперь сделай одолжение напиши такую программу и прогони norespect.gif ...

var
a:real;
begin
a:=4.5;
writeln(round(a)); { ... или же просто writeln(4.5); }
end.


мисс_граффити, я же не сказал что round(3.2) не равно 3 и даже round(4.6) равно 5, но round(4.5) равно 4
если не веришь, проверь yes2.gif

Сообщение отредактировано: Bard - 15.05.2007 7:34


--------------------
Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 15.05.2007 8:58
Сообщение #8


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Хм.. Действительно, FPC мне округлил половину до меньшего числа..
BP сработал правильно.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 15.05.2007 9:21
Сообщение #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 - 15.05.2007 9:52
 К началу страницы 
+ Ответить 
Bard
сообщение 15.05.2007 10:41
Сообщение #10


Учиться, учиться еще раз учиться
***

Группа: Пользователи
Сообщений: 158
Пол: Мужской
Реальное имя: Яшар

Репутация: -  3  +


Цитата

Хм.. Действительно, FPC мне округлил половину до меньшего числа..
BP сработал правильно.

ну вот и я об этом... а так конечно же я знаю что при округлении 4.5 ответ должен быть 5... dry.gif

Цитата

Ничего подобного... Я про то, что НЕ ВСЕГДА - до меньшего... Попробуй округлить 7.5 - тебя ждет сюрприз...

я все понял... спасибо good.gif


--------------------
Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TIGER535
сообщение 4.12.2010 22:31
Сообщение #11


Гость






а есть еще вопросик, как округлить число в большую/меньшую сторону независимо от дробной части
т.е. например в большую
3,2 = 4
3,8 = 4
3,1 = 4
 К началу страницы 
+ Ответить 
volvo
сообщение 4.12.2010 22:44
Сообщение #12


Гость






Цитата
как округлить число в большую/меньшую сторону независимо от дробной части
Отбросить дробную часть (Trunc-ом) и прибавить 1 к результату. Можно проверить дробную часть, и прибавлять 1 только если она ненулевая.
 К началу страницы 
+ Ответить 
Гость
сообщение 4.12.2010 22:48
Сообщение #13


Гость






спасибо, а как проверить?
 К началу страницы 
+ Ответить 
Гость
сообщение 11.04.2013 16:07
Сообщение #14


Гость






Цитата(volvo @ 4.12.2010 22:44) *

Отбросить дробную часть (Trunc-ом) и прибавить 1 к результату. Можно проверить дробную часть, и прибавлять 1 только если она ненулевая.

norespect.gif norespect.gif norespect.gif norespect.gif norespect.gif norespect.gif norespect.gif
 К началу страницы 
+ Ответить 
Гость
сообщение 11.04.2013 16:14
Сообщение #15


Гость






Цитата(Гость @ 11.04.2013 16:07) *

norespect.gif norespect.gif norespect.gif norespect.gif norespect.gif norespect.gif norespect.gif

 К началу страницы 
+ Ответить 
-Иван-
сообщение 11.04.2013 16:19
Сообщение #16


Гость






YYY.gif ypriamii.gif жопорук adm.gif нефиг пифть всякую хрень!!если ті не хера не знаешь!
 К началу страницы 
+ Ответить 
Гость
сообщение 23.03.2014 13:19
Сообщение #17


Гость






adm.gif adm.gif 3.gif 1.gif !yessir.gif !tongue1.gif !nnn.gif tank.gif nvfghjk,
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 28.04.2024 10:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"