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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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