VBA, вычитание с неправильным результутом (ms access)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток.
Столкнулся я в своей базе (access) с проблемой при работе с дробными числами (чертовы копейки) - два одинаковых числа при сравнении оказывались разными. В оригинале это выглядит как "If (rst2!cert_sum / rst2!cert_days) * rst1!days <> rst1!sum Then".
Упростив пример, и откинув взаимодействие с таблицами, дабы отсечь возможные причины, пришел к следующему:

В таком виде получаем на выходе "1861,2 __ 1861,2 __ 0". Всё верно. Меняем исходные, теперь temp6 вычислим.

И на выходе... "1861,2 __ 1861,2 __ 1,220703E-04". А надо 0.
Честно пытался нагуглить, не вышло.
И со второй странностью столкнулся. Тот же (второй) код, но объявление заменил на "Dim temp3, temp4, temp5, temp6, temp7 As Single". Ничего ведь не должно было измениться, да? Однако, на выходе стал получать "1861,2 __ 1861,2 __ 2,273737E-13"

Решение задачи: «VBA, вычитание с неправильным результутом (ms access)»

textual
Листинг программы
Dim a, b, c As Single, x, y As Double, i As Integer
' a, b, and c are all Single; x and y are both Double

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

14   голосов , оценка 4 из 5