При вычислении разности чисел 0.91 и 0.90 результат равен 0.01, а при вычислении разности чисел 10.91 и 10.90 результат не равен 0.01
Можно подобрать сколь угодно много примеров таких ошибок.. Ошибка не зависит от платформы СУБД.
Ниже код демонстрирующий данную ошибку:
Код: Выделить всё
!.Form 'TAP_TestSum'
.Set Name 'TAP_TestSum'
.Ard
.NameInList 'Проверка разности чисел'
.Var
sumP : Double;
sumL : Double;
.EndVar
.Begin
sumP := 0.91;
sumL := 0.90;
End.
.{?Internal; ((sumP-sumL) = 0.01)
Разность чисел 0.91 и 0.90 равна 0.01
.}
-----------------------------------
.Begin
sumP := 10.91;
sumL := 10.90;
End.
.{?Internal; ((sumP-sumL) <> 0.01)
Разность чисел 10.91 и 10.90 НЕ равна 0.01
.}
.EndForm
Ответ: Потому что не надо проверять действительные числа на равенство!!
Предлагаю высказать ваши мнения по данной проблеме и действительно ли работая в бухгалтерской программе мы не имеем права сравнивать числа с запятой.