Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Анатолий (Киев)
Какой тип поля "Количество"? Похоже - Single (Одинарное с плавающей точкой), а это очень неточный числовой тип для дробных чисел. Если есть возможность - измените тип поля:
На Currecy (Денежный), если количество десятичных разрядов не превышает 4, или Decimal (Действительное), или (на худой конец) - Double (Двойное с плавающей точкой).
Проблема с точностью будет решена навсегда. Надеюсь, поле "ЦенаСндс" у вас денежное?

Дело в том, что если в формуле участвуют операнды различных типов - результат приводится к самому "грубому" типу. Вот пример в окне отладки:
?CCur(CSng(2647.2) * 120)
317663.9941

Это потому, что в реальности число 2647.2 типа Single хранится как:
?317663.9941 / 120
2647.19995083333

Вот правильные конструкции:
?CCur(CSng(2647.2)) * 120
317664
?CDec(CSng(2647.2)) * 120
317664

Т.е. преобразовывать к другому типу нужно не результат вычислений а самый неточный операнд.
Для вашей формулы это: =CCur([Количество])*[ЦенаСндс]


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.