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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2010, 16:51   #1
ytzm2hsD3X0HVxwl
Заблокирован
 
Регистрация: 02.12.2009
Сообщений: 15
По умолчанию Я в шоке, как VBA складывает

Здравствуйте,
Заметил и проверил такую вещь, что например при сложении большого и малого числа, отбрасывается дробная часть.
Например:
1e10+1e-10=1e10,
В моем макросе это очень важно, скажите какие переменные можно еще использовать?
ytzm2hsD3X0HVxwl вне форума Ответить с цитированием
Старый 09.01.2010, 16:57   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Не знаю насчет VB, но обычно компьютер хранит число так:
ЗНАК_ЧИСЛО_СТЕПЕНЬ
Причем количество разрядов ограничено
Скорее всего ваше число настолько растягивается, что степень не может отобразить 20 разрядов.

P.S. Если что напутал, ногами не бить. Теорию в последний раз смотрел год назад.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 09.01.2010, 17:09   #3
ytzm2hsD3X0HVxwl
Заблокирован
 
Регистрация: 02.12.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Не знаю насчет VB, но обычно компьютер хранит число так:
ЗНАК_ЧИСЛО_СТЕПЕНЬ
Причем количество разрядов ограничено
Скорее всего ваше число настолько растягивается, что степень не может отобразить 20 разрядов.

P.S. Если что напутал, ногами не бить. Теорию в последний раз смотрел год назад.
Дело в том что я проверил, вставил в ячейку это число. Сам в теории не шарю. Или он не просто не отображает? Тогда нет проблем, лишь бы просто не отсекал.
ytzm2hsD3X0HVxwl вне форума Ответить с цитированием
Старый 09.01.2010, 17:19   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Чем больше число (степень) до запятой тем мень число (степень) после запятой. После некоторой грани сначала пропадают значения после запятой, потом первые разряды обнуляются... Так что у Вас похоже число со слишком большой степенью.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 09.01.2010, 22:06   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

выходите из шока почитайте в инете "представление действительных чисел в памяти ЭВМ" или нечто подобное - все подробно расписано для паскаля, бейсика, С++ и пр.
Задача вычислить милльярдный знак в числе Пи - очень не простая для компьютера и требует специального алгоритма, а не способа хранения (правильного выбора типа данных).
Если хранить все знаки числа Пи не хватит всей памяти всех компьютеров мира. Это только Чак Норис смог досчитать до бесконечности (два раза).
Успехов!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 10.01.2010, 01:21   #6
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Если числа только целые, то могут помочь разные библиотеки для работы с числами произвольной длины типа BigInteger.
motorway вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Я в шоке: Гугл проверяет наши письма Levsha100 Свободное общение 29 13.01.2010 15:45
Как удалять Модули в VBA? segail Microsoft Office Excel 1 18.06.2009 06:11
Комендантский час!!! Что к народному бунту готовимся, к войне, я в шоке от последних новостей Alar Свободное общение 141 03.05.2009 19:41
Borland C++Builder почему он не складывает коды символов тут? BattleMage C++ Builder 1 29.09.2007 08:56