powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Лишняя копейка в отчете
13 сообщений из 13, страница 1 из 1
Лишняя копейка в отчете
    #32872307
Mari.P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Windows 2000 sp4, MS Access 2003, Таблица содержит поле денежного формата. В отчете это поле выводится в столбец, а в разделе итогов выводится общая сумма по столбцу. Так вот в этой общей сумме всегда имеется лишняя копейка. Что делать, как решить проблему ? Откуда она берется?
...
Рейтинг: 0 / 0
Лишняя копейка в отчете
    #32872315
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если всегда лишняя копейка, то просто отнимай её :)
а если серьёзно, то поиск по форуму по слову "округление"
--------------
crazy about...
...
Рейтинг: 0 / 0
Лишняя копейка в отчете
    #32872337
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
складывать нужно уже округлённые до копеек значения, вероятно в данных имеются записи с долями копеек
...
Рейтинг: 0 / 0
Лишняя копейка в отчете
    #32872499
Mari.P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формат поля Currency - разве он может давать ошибку округления
Там ведь отсекается все что после второго знака или я не права?
Кстати в поиске ничего дельного кроме формулы X=Int(X*100+0,5)/100
я не нашла. Неужели в наше время таким пещерным способом считать деньги?
...
Рейтинг: 0 / 0
Лишняя копейка в отчете
    #32872515
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообщето currency до 4 знаков после запятой
--------------
crazy about...
...
Рейтинг: 0 / 0
Лишняя копейка в отчете
    #32872518
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Mari.PФормат поля Currency
Формат или тип?
...
Рейтинг: 0 / 0
Лишняя копейка в отчете
    #32872519
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Currency - 4 десятичных знака после запятой, те могут храниться сотые доли копеек. Страшная формула - это для 97 аксесс.

А без аккуратного округления - денежки с точностью до копейки не подсчитать
...
Рейтинг: 0 / 0
Лишняя копейка в отчете
    #32873235
Фотография RuslanLisovenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот функция округления
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
'   Округление
Public Function Round(nExpression As Variant, nDecimalPlaces As Integer)
Dim nNum As Long
Dim dMant As Double

    nExpression = IIf(IsNull(nExpression),  0 , nExpression)
    nNum = (nExpression * ( 10  ^ nDecimalPlaces)) \  1 
    dMant = Abs(nExpression * ( 10  ^ nDecimalPlaces)) - Abs(nNum)
    
    Round = (nNum \  1  + IIf(dMant <  0 . 5 ,  0 ,  1 )) / ( 10  ^ nDecimalPlaces)

End Function

Приведите пример формулы...............да действительно имеет значение когда вы округляете и чтобы по всему коду в сопряженных расчетах учитывался один и тот же алгоритм............

Обычно одна копеечка получается при пересчетах сумм НДС при прямом или обратном...................два метода дают погрешность в одну копейку...........от этого вы точно не уйдете................

С ув. к участникам форума, Руслан.
...
Рейтинг: 0 / 0
Лишняя копейка в отчете
    #32873241
Фотография RuslanLisovenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или вы пытаетесь печатать из Вашей программы на ЭККА............ :)

ЭККА не округляет Ваши значения ,а отсекает(для весового товара) в количестве до 3 знаков после.......а в стоисмоти отсекат тупо до двух......................
Соотвественно у ВАС на ПК сумма одна, а на КАССЕ другая.........

Ладн наверно отошел от темы ..........просто нет конкретного вопроса с приложением.............................

С ув. к участникам форума, Руслан.
...
Рейтинг: 0 / 0
Лишняя копейка в отчете
    #32873333
Mari.PWindows 2000 sp4, MS Access 2003, Таблица содержит поле денежного формата. В отчете это поле выводится в столбец, а в разделе итогов выводится общая сумма по столбцу. Так вот в этой общей сумме всегда имеется лишняя копейка. Что делать, как решить проблему ? Откуда она берется?

Alexey Sh уже все сказал. В развернутом виде это будет звучать примерно так


что делать –
1)проверить, выставив в (таблице)/(запросе)/(поле на форме) количество знаков после запятой=4, что фактические значения лежат в таблице в копейках, а не в тысячных или десятитысячных рублей(денежных единиц). Если значения в третьем-четвертом знаке в таблице найдутся – провести округление уже хранимых значений и исправить программу так, чтобы дробные копейки в таблицу больше не попадали. Скорее всего (почти наверняка) этого будет достаточно. (И сделать это необходимо безотносительно к оставшимся строкам письма)
2)В общем случае шаг1 не гарантирует абсолютной надежности сложения, т.к.
SUM норовит приводить данные к double. По крайней мере так было «раньше». Поэтому может оказаться полезным явное задание выражения для суммирования в виде SUM(Round([ВашеПоле];2)), хотя выглядит оно вполне смешно (для поля типа Currency).
в сумме все равно циферки могут оказаться после второго знака – если посмотреть внимательнее. Поэтому, если сумма тоже подлежит хранению в
базе – ее тоже надо явно округлить до нужного к-ва знаков

можно сыскать предложения типа сложения форматированных строк, ЛП вот
горячо не рекомендует, не знаю, правда, почему…
На третьем шаге, если до него дойдет дело – придется писать свою функцию
сложения.


ЗЫ1
я прямо с подобными эффектами уже давно не встречался, это по памяти

ЗЫ2
Деньги, они только пещерными методами и считаются, а не по арифметике.
Причем в каждой пещере свои правила.
...
Рейтинг: 0 / 0
Лишняя копейка в отчете
    #32875626
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Новый топик того же автора удален. Вот его содержание:

Mari.PПростите за повторение вопроса, но честный поиск, чтение help и тп ничего не дали. Итак поле в таблице тип данных -денежный, формат данных денежный, число знаков после запятой 2. При суммировании поля в отчете формулой Sum(Поле1) возникает лишняя копейка, если суммировать вот так - Sum(Int(Поле1*100))/100 , то все нормально. Вопрос - почему такое происходит и нельзя-ли решить проблему более изящно чем деление на 100
Не нужно заставлять людей отвечать одно и то же по два раза.
...
Рейтинг: 0 / 0
Лишняя копейка в отчете
    #32875644
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формат - это внешнее представление, на хранение данных и суммирование влияние не оказывает. а потому если в базе хранится
1.204
1.204
1.204
1.204
1.197


то на экране (отчёте) будет

1.20
1.20
1.20
1.20
1.20
------
6.01
, т к сумма будет 6.013
...
Рейтинг: 0 / 0
Лишняя копейка в отчете
    #32875663
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати хранятся данные в рублях или копейках
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Лишняя копейка в отчете
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]