Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2011, 18:21   #1
PARTOS
Пользователь
 
Регистрация: 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.
Как решить данную проблему?
Вложения
Тип файла: rar EX.rar (6.7 Кб, 12 просмотров)

Последний раз редактировалось PARTOS; 25.02.2011 в 18:59.
PARTOS вне форума Ответить с цитированием
Старый 25.02.2011, 18:47   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Вычитаю из числа А(15555) число В(15545) и получаю разницу число D=11
давно это у Вас?
я как не вычитаю - получаю 10.
поищите в интернете что-то типа "хранение чисел в памяти компьютера" там все описано.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.02.2011, 18:52   #3
PARTOS
Пользователь
 
Регистрация: 24.10.2009
Сообщений: 87
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
давно это у Вас?
я как не вычитаю - получаю 10.
поищите в интернете что-то типа "хранение чисел в памяти компьютера" там все описано.
Да, извиняюсь - неправильно записал
В прикрепленном файле числа
А=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.
PARTOS вне форума Ответить с цитированием
Старый 25.02.2011, 20:28   #4
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

День сегодня такой? Не первая тема о разрядности
Вам же Игорь посоветовал: "поищите в интернете что-то типа "хранение чисел в памяти компьютера" там все описано"
Максимальная разрядность чисел в Excel - 15 знаков. Было бы больше, видели бы больше "разрядных девяток". Неточность возникает при обработке дробных чисел.
Используйте функции типа ОКРУГЛ() или ЦЕЛОЕ().
vikttur вне форума Ответить с цитированием
Старый 25.02.2011, 20:41   #5
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

http://support.microsoft.com/kb/78113/ru
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 25.02.2011, 20:56   #6
PARTOS
Пользователь
 
Регистрация: 24.10.2009
Сообщений: 87
По умолчанию

Спасибо всем за подсказки
PARTOS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение значения в памяти 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