|
4 / 4 / 0
Регистрация: 25.06.2010
Сообщений: 106
|
||||||
непонятки02.08.2011, 13:40. Показов 9329. Ответов 81
Метки округление (Все метки)
у меня есть прога которая берет дабл и разделяет его на две сост. целое и дробное
0
|
||||||
| 02.08.2011, 13:40 | |
|
Ответы с готовыми решениями:
81
непонятки с for непонятки с Си Непонятки с WXDev C++ |
|
Модератор
12846 / 7595 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
||
| 02.08.2011, 23:23 | ||
|
0
|
||
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||
| 02.08.2011, 23:51 | ||
|
Кстати, pow(0.1,4) это не 10^-5
0
|
||
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 03.08.2011, 00:36 | |
|
Потому, что это верхняя граница абсолютного значения ошибки представления целого числа, которую ещё можно исправить. И способ её исправления — округление до ближайшего целого.
То есть если известно, что число должно быть целым, то если истинная ошибка по модулю меньше 0.5, то достаточно просто округлить к ближайшему целому. Если ошибка больше, то её не исправить. Алгоритм округления я показывал в функции: Если число положительное, то надо добавить 0.5 и округлить к минус бесконечности (floor). Если число отрицательное, то надо вычесть 0.5 и округлить к плюс бесконечности (ceil).
1
|
|
| 03.08.2011, 00:42 | |
|
0
|
|
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|||
| 03.08.2011, 01:00 | |||
![]() До ближайшего целого. Этому в школе учат. 23.71 округляется до 24, 23.1 округляется до 23 23.5 округляется до 24 23.499 округляется до 23 -17.6 округляется до -18 -17.3 округляется до -17 -17.5 округляется до -18 -17.49 округляется до -17 Это называется до ближайшего целого. Добавлено через 13 минут Дробные числа хранятся в памяти в усечённом виде, так как нет способа представить абсолютно любую дробь конечным количеством битов. Поэтому после умножения, к примеру, 0.11 на 100 мы получим не точно 11, а число близкое к 11, с некоторой ошибкой. Это не вызывает несогласия? Ошибка может быть как положительной, так и отрицательной. Кроме того, поскольку 0.11 получается у нас в результате вычитания (когда целую часть отнимаем), то ошибка эта может быть довольно существенной. В общем случае чем больше по модулю целая часть, тем больше будет модуль возможной ошибки. В результате вместо 11 у нас может получится, к примеру, 11.07 или может 10.95, или ещё какое. Конечно, для получения настолько большой ошибки разрядности int в 32 бита не хватит, но можно ведь и более вместительный тип взять. Так вот, пока модуль ошибки меньше чем 0.5, эту ошибку можно полностью устранить. Округлением до ближайшего целого.
0
|
|||
|
Модератор
12846 / 7595 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
||||||
| 03.08.2011, 01:17 | ||||||
0
|
||||||
| 03.08.2011, 01:18 | |
|
0
|
|
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 03.08.2011, 01:20 | |
|
easybudda, а зачем правые нули удаляешь? Они же значащие при заданной разрядности.
0
|
|
|
Модератор
12846 / 7595 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
||
| 03.08.2011, 01:30 | ||
|
0
|
||
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 03.08.2011, 01:32 | |
|
Красивше, да
![]() Но семантика-то у них 3 целых и 50 тысячных. Про то что 50 тысячных стали 5-ю сотыми из вывода уже не понять.
0
|
|
|
|
|||||||||||||
| 03.08.2011, 09:11 | |||||||||||||
Далее double 1.79769e+308 Рассмотрим случай - я програмно ввёл целую часть 9223372036854775890 - и что тогда??? А если введу только целую часть 1.79769e+308, к какому тогда типу приводить будешь???Я пытался тебе показать что если есть тип данных с максимальным диапазоном, то не следует его целую часть преобразовывать к типу с меньшей разрядностью. Дробная часть у меня в алгоритме изначально правильно выводилась, так что не нужно приделывать пару дополнительных колёс к коду - эту запись
0
|
|||||||||||||
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|||||||||||
| 03.08.2011, 11:23 | |||||||||||
30000 RU 11 KOP 30000 RU 12 KOP Вот уж сюрприз сюрпризов, ага. Так почему 10^-12 или 10^-5 или сколько надо-то? ![]()
1
|
|||||||||||
|
paladin
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
|
|
| 03.08.2011, 12:43 | |
|
Мда... тяжёлый тут случай. Лучше займитесь чем-нибудь более полезным (например, класс напишите для хранения сколь угодно большого целого числа, влезающего в оперативку, затем на его основе класс рациональных чисел можно забабахать).
Если по теме, то погрешность у целых чисел наподобие int абсолютная (+/-0,5), а у вещественных (флоуты, даблы там всякие) - относительная (какие-то части процента). Это на предмете Архитектура ЭВМ должны вдалбливать, но многие интересующиеся/способные узнают эту инфу много раньше.
0
|
|
|
Модератор
12846 / 7595 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
||
| 03.08.2011, 12:51 | ||
|
0
|
||
|
|
|||||||
| 03.08.2011, 13:14 | |||||||
0
|
|||||||
| 03.08.2011, 13:14 | |
|
Непонятки с итераторами Непонятки со списком Непонятки с выводом
Непонятки со scanf Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|