|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.02.2011, 18:21 | #1 |
Пользователь
Регистрация: 24.10.2009
Сообщений: 87
|
Изменение значения числа при увеличении разрядности
Изменение значения числа при увеличении разрядности
Столкнулся со следующей проблемой: Есть число А = 1,5555 Есть число В = 1,5544 Есть число С = 11 Умножаю числа А и В на 10000 Получаю А=15555 В=15544 Вычитаю из числа А(15555) число В(15544) и получаю разницу число D=11 Вычитаю из числа С(11) полученное число D(11)… Полученный результат оказывается неравным нулю. Оказывается, число D (результат разницы А-В) при увеличении разрядности, после 11 знака после запятой отображается как 10,999999999998 P.S. Такая ситуация возникает только в тех случаях, когда, изначально, в числах А и В целые части чисел равны или 1 или 2. Как решить данную проблему? Последний раз редактировалось PARTOS; 25.02.2011 в 18:59. |
25.02.2011, 18:47 | #2 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Цитата:
я как не вычитаю - получаю 10. поищите в интернете что-то типа "хранение чисел в памяти компьютера" там все описано.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
25.02.2011, 18:52 | #3 | |
Пользователь
Регистрация: 24.10.2009
Сообщений: 87
|
Цитата:
В прикрепленном файле числа А=1,5445 В=1,5434 разница =11, но при увеличении разрядности = 10,09999999999982 Если числа умножать на число любого другого разряда (на 10, на 100, на 1000, на 100000) то все считает нормально, а при умножении на 10000 – такая непонятка. Даже если числа представить как =1,5555*100000/10 и =1,5544*100000/10, то их разница будет неизменной и равна 11 при любом увеличении разрядности. А при =1,5555*10000 и =1,5544*10000, значение разницы изменяется при увеличении разрядности Последний раз редактировалось PARTOS; 25.02.2011 в 19:04. |
|
25.02.2011, 20:28 | #4 |
Участник клуба
Регистрация: 16.05.2010
Сообщений: 1,249
|
День сегодня такой? Не первая тема о разрядности
Вам же Игорь посоветовал: "поищите в интернете что-то типа "хранение чисел в памяти компьютера" там все описано" Максимальная разрядность чисел в Excel - 15 знаков. Было бы больше, видели бы больше "разрядных девяток". Неточность возникает при обработке дробных чисел. Используйте функции типа ОКРУГЛ() или ЦЕЛОЕ(). |
25.02.2011, 20:41 | #5 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 |
25.02.2011, 20:56 | #6 |
Пользователь
Регистрация: 24.10.2009
Сообщений: 87
|
Спасибо всем за подсказки
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Изменение значения в памяти | zotox | Общие вопросы Delphi | 2 | 11.10.2010 17:31 |
Изменение значений одного выпадающего списка, при измнении значения другого | Ground | Microsoft Office Access | 5 | 07.09.2010 22:00 |
Автоматическое изменение значения в ячейке | TStalin | Microsoft Office Excel | 7 | 07.09.2010 18:19 |
автоматическое изменение значения | intelx1989 | Microsoft Office Access | 1 | 12.01.2010 21:19 |