Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Странный результат сложения дробных чисел - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Странный результат сложения дробных чисел (Иное/Other)
Странный результат сложения дробных чисел
GroLL Дата: Пятница, 07.11.2014, 14:51 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Всем добрый день.
Помогаю товарищу с его контрольными (сам он в VBA никакой, правда и я программированием в VBA занимался последний раз лет 10 назад :D )
Вкратце опишу ситуацию.
Задан диапазон от 1,8 до 2,6 с шагом d (в нашем примере шаг равен 0,1), то есть после вычисления значения формулы переходим к следующему члену ряда тупо x=x+d
Вычисления идут нормально до 2,5, после того как к 2,5 прибавляем опять 0,1 почему то выходит не 2,6 а 2,59999999. Когда опять прибавляем 0,1, значение становится 2,69999999 и выходим из цикла, так как уже не укладываемся в заданный диапазон. Тип переменной объявлен как Single.
Подскажите пожалуйста в чем может быть дело?
 
Ответить
СообщениеВсем добрый день.
Помогаю товарищу с его контрольными (сам он в VBA никакой, правда и я программированием в VBA занимался последний раз лет 10 назад :D )
Вкратце опишу ситуацию.
Задан диапазон от 1,8 до 2,6 с шагом d (в нашем примере шаг равен 0,1), то есть после вычисления значения формулы переходим к следующему члену ряда тупо x=x+d
Вычисления идут нормально до 2,5, после того как к 2,5 прибавляем опять 0,1 почему то выходит не 2,6 а 2,59999999. Когда опять прибавляем 0,1, значение становится 2,69999999 и выходим из цикла, так как уже не укладываемся в заданный диапазон. Тип переменной объявлен как Single.
Подскажите пожалуйста в чем может быть дело?

Автор - GroLL
Дата добавления - 07.11.2014 в 14:51
alex77755 Дата: Пятница, 07.11.2014, 14:57 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

В типе данных
Использовать можно @ (Currency)


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеВ типе данных
Использовать можно @ (Currency)

Автор - alex77755
Дата добавления - 07.11.2014 в 14:57
buchlotnik Дата: Пятница, 07.11.2014, 23:16 | Сообщение № 3
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Можно так[vba]
Код
    For i = 1.8 To 2.6 Step 0.1
         i = CDbl(Format(i, "0.0"))        
     Next
[/vba]
Машинная ошибка компенсируется округлением на каждой проходке цикла
 
Ответить
СообщениеМожно так[vba]
Код
    For i = 1.8 To 2.6 Step 0.1
         i = CDbl(Format(i, "0.0"))        
     Next
[/vba]
Машинная ошибка компенсируется округлением на каждой проходке цикла

Автор - buchlotnik
Дата добавления - 07.11.2014 в 23:16
ShAM Дата: Суббота, 08.11.2014, 03:07 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Еще вариант, цикл делать по целым числам, а внутри цикла дробить.
 
Ответить
СообщениеЕще вариант, цикл делать по целым числам, а внутри цикла дробить.

Автор - ShAM
Дата добавления - 08.11.2014 в 03:07
SkyPro Дата: Суббота, 08.11.2014, 03:27 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Самым экономным вариантом будет изменение типа переменной на currency или double.


skypro1111@gmail.com
 
Ответить
СообщениеСамым экономным вариантом будет изменение типа переменной на currency или double.

Автор - SkyPro
Дата добавления - 08.11.2014 в 03:27
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Странный результат сложения дробных чисел (Иное/Other)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!