Assembler, Basic, Pascal/Delphi, Perl, PHP, JavaScript, HTML и т.д. Вопросы и помощь.
Alex ilmarranen » 20 сен 2007, 16:00:33
Какъ округлить число 5.5(5) ?
Вопросъ не такой простой какъ кажется… Не спешите съ выводами…
-
Alex ilmarranen
-
Гость » 20 сен 2007, 16:20:15
как не крути, а 6 получится….
-
Гость
-
John » 20 сен 2007, 17:54:14
Alex ilmarranen
чета не въеду, а в чем проблема-то, все отлично округляется, если имеется ввиду погрешность которая случается с нецелочисленными переменными, так она тоже легко решается, ты конкретно задай вопрос с примером и тогда получишь ответ конкретный
-
John
- Хранитель

-
- Сообщения: 1646
- Зарегистрирован: 31 окт 2006, 11:46:39
- Пол: Мужской
F1L » 20 сен 2007, 18:32:14
Alex ilmarranen
В средних по-моему классах проходят округление чисел…и 5 округляется в большую сторону…так что не очень понял суть вопроса…
Эй студентка...ты знаешь 50cent'а? я такой же как и он только без пары моментов...
-
F1L
- Наблюдатель

-
- Сообщения: 26
- Зарегистрирован: 13 июл 2007, 20:34:44
- Откуда: Курск
-
Alex ilmarranen » 20 сен 2007, 18:52:57
значитъ поясняю…
существуетъ 2 вида округления(основныхъ)- арифметическое и банковское..
Въ особомъ случае - когда последняя цифра 5:
арифметическое - вверхъ…
банковское - до чётного…
Сделано это для того, чтобы существующую погрешность "размазать" по всему интервалу…
1 компенсирует 9,
2 - 8,
и т.д.
однако такъ какъ 5 не компенсируется(точнее 0 не округляется, а 5 не имеетъ вследствии чего пары)… нужно было избрать методъ… И его нашли… назвали до ближайшего чётного… Т.е. из-за равновероятности цифр следуетъ скомпенситрованность…
Къ 5.5(5) какое … целое?
и 5 округляется в большую сторону
Вотъ въ среднихъ классахъ оно такъ и округляется…
-
Alex ilmarranen
-
Alex ilmarranen » 20 сен 2007, 23:42:37
Вобщемъ ладно… Проблема решена… Если это можно такъ назвать…
Спасибо за внимание, извините за беспокойство…
2F1L Почитай ссылки выше… И не округляй больше въ большую сторону…

John писал(а):если имеется ввиду погрешность которая случается с нецелочисленными переменными, так она тоже легко решается,
Что подразумевается подъ решениемъ…?

-
Alex ilmarranen
-
John » 21 сен 2007, 14:05:20
Alex ilmarranen
ну на примере, давно было правда, был косяк, число шото типа 23,234534345дохрена после запятой, функция round не хотела округлять правильно из-за долбаной погрешности(причем такой косяк встречается не очень и часто) , пришлось сделать так int((x*10+5)/10), но вот такая формула не работала int(x+0.5), вот фантастика и все тут, но паскаль хорош тем что его всегда можно нае….ть:)
тоже самое при сравнении двух чисел с плавающей точкой, хрен когда правильный результат даст при использовании
-
John
- Хранитель

-
- Сообщения: 1646
- Зарегистрирован: 31 окт 2006, 11:46:39
- Пол: Мужской
Alex ilmarranen » 21 сен 2007, 19:28:12
Ммммм… Интересно.. Надо будетъ попробовать…
Спасибо…
-
Alex ilmarranen
-
Гость » 29 дек 2007, 21:25:09
Alex ilmarranen писал(а):Ммммм… Интересно.. Надо будетъ попробовать…
Спасибо…
Можно попробавить прибавить к получившемуся ответу после округления какое нибуть число вроде как 0,0000000000000001 или побольше, число округлиться в нужную сторону. Очень даже работает
-
Гость
-
Вернуться в Программирование
Зарегистрированные пользователи: AhrefsBot [Bot], Bing [Bot], DotBot [Crawler], Google [Bot], Petal [Bot], SEMrush [Бот], Trendiction [Бот], Яндекс [Бот]