Доступ к функции iif - неверный результат

Я запускаю запрос (Access 2003) из приложения VB.NET.

select id, customer, date, total, iif ([amountGet] - [amountSent] = [total], 'Yes', 'No') as result from invoices

но iif возвращает неправильные результаты

TABLE
id: 1
заказчик: pepe
дата: 01.01.2014
всего: 1,8
amountGet: 5
amountSent: 3 ,2

РЕЗУЛЬТАТ:
возвращает "Нет"

когда должно вернуться "Да", потому что 5-3,2=1,8


person kontable    schedule 02.04.2014    source источник
comment
Какие типы имеют количествоGet, amountSent и total? Скорее всего, это связано с ошибкой округления.   -  person jpw    schedule 02.04.2014
comment
Двойной (автоматические десятичные дроби)   -  person kontable    schedule 02.04.2014
comment
Может ли быть проблема с настройками вашего региона, использующими , вместо . для десятичной позиции? Вы пытались запустить это в ближайшем окне?   -  person Zaider    schedule 02.04.2014
comment
Привет: следуя комментариям jpw, теперь я округляю числа до 2 знаков после запятой и, кажется, работает хорошо. iif (раунд([суммаПолучено] - [суммаОтправлено],2) = раунд([всего],2))   -  person kontable    schedule 02.04.2014


Ответы (1)


округление чисел до одинакового числа десятичных знаков, в моем случае 2 десятичных знака, возвращает правильный результат:

iif ( round([amountGet] - [amountSent],2) = round([total],2) )

@jpw спасибо за комментарий, потому что он помог мне найти решение

person kontable    schedule 04.04.2014