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

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

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

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


Гость






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


Бывалый
***

Группа: Пользователи
Сообщений: 231
Пол: Женский

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


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


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

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

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


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


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


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

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

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


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


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


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

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


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


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


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

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

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


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


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


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

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

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


Цитата

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

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

Цитата

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

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


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


Гость






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


Гость






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


Гость






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


Гость






Цитата(volvo @ 5.12.2010 2:44) *

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


round(x+0,4(9)) - спартанское решение
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 29.03.2024 4:55
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name