|
|
|
Лишняя копейка в отчете
|
|||
|---|---|---|---|
|
#18+
Windows 2000 sp4, MS Access 2003, Таблица содержит поле денежного формата. В отчете это поле выводится в столбец, а в разделе итогов выводится общая сумма по столбцу. Так вот в этой общей сумме всегда имеется лишняя копейка. Что делать, как решить проблему ? Откуда она берется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 13:43:12 |
|
||
|
Лишняя копейка в отчете
|
|||
|---|---|---|---|
|
#18+
если всегда лишняя копейка, то просто отнимай её :) а если серьёзно, то поиск по форуму по слову "округление" -------------- crazy about... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 13:46:11 |
|
||
|
Лишняя копейка в отчете
|
|||
|---|---|---|---|
|
#18+
складывать нужно уже округлённые до копеек значения, вероятно в данных имеются записи с долями копеек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 13:52:12 |
|
||
|
Лишняя копейка в отчете
|
|||
|---|---|---|---|
|
#18+
Формат поля Currency - разве он может давать ошибку округления Там ведь отсекается все что после второго знака или я не права? Кстати в поиске ничего дельного кроме формулы X=Int(X*100+0,5)/100 я не нашла. Неужели в наше время таким пещерным способом считать деньги? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 14:51:28 |
|
||
|
Лишняя копейка в отчете
|
|||
|---|---|---|---|
|
#18+
вообщето currency до 4 знаков после запятой -------------- crazy about... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 14:54:07 |
|
||
|
Лишняя копейка в отчете
|
|||
|---|---|---|---|
|
#18+
Mari.PФормат поля Currency Формат или тип? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 14:54:30 |
|
||
|
Лишняя копейка в отчете
|
|||
|---|---|---|---|
|
#18+
В Currency - 4 десятичных знака после запятой, те могут храниться сотые доли копеек. Страшная формула - это для 97 аксесс. А без аккуратного округления - денежки с точностью до копейки не подсчитать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 14:54:54 |
|
||
|
Лишняя копейка в отчете
|
|||
|---|---|---|---|
|
#18+
Вот функция округления Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Приведите пример формулы...............да действительно имеет значение когда вы округляете и чтобы по всему коду в сопряженных расчетах учитывался один и тот же алгоритм............ Обычно одна копеечка получается при пересчетах сумм НДС при прямом или обратном...................два метода дают погрешность в одну копейку...........от этого вы точно не уйдете................ С ув. к участникам форума, Руслан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 18:34:46 |
|
||
|
Лишняя копейка в отчете
|
|||
|---|---|---|---|
|
#18+
Или вы пытаетесь печатать из Вашей программы на ЭККА............ :) ЭККА не округляет Ваши значения ,а отсекает(для весового товара) в количестве до 3 знаков после.......а в стоисмоти отсекат тупо до двух...................... Соотвественно у ВАС на ПК сумма одна, а на КАССЕ другая......... Ладн наверно отошел от темы ..........просто нет конкретного вопроса с приложением............................. С ув. к участникам форума, Руслан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 18:38:39 |
|
||
|
Лишняя копейка в отчете
|
|||
|---|---|---|---|
|
#18+
Mari.PWindows 2000 sp4, MS Access 2003, Таблица содержит поле денежного формата. В отчете это поле выводится в столбец, а в разделе итогов выводится общая сумма по столбцу. Так вот в этой общей сумме всегда имеется лишняя копейка. Что делать, как решить проблему ? Откуда она берется? Alexey Sh уже все сказал. В развернутом виде это будет звучать примерно так что делать – 1)проверить, выставив в (таблице)/(запросе)/(поле на форме) количество знаков после запятой=4, что фактические значения лежат в таблице в копейках, а не в тысячных или десятитысячных рублей(денежных единиц). Если значения в третьем-четвертом знаке в таблице найдутся – провести округление уже хранимых значений и исправить программу так, чтобы дробные копейки в таблицу больше не попадали. Скорее всего (почти наверняка) этого будет достаточно. (И сделать это необходимо безотносительно к оставшимся строкам письма) 2)В общем случае шаг1 не гарантирует абсолютной надежности сложения, т.к. SUM норовит приводить данные к double. По крайней мере так было «раньше». Поэтому может оказаться полезным явное задание выражения для суммирования в виде SUM(Round([ВашеПоле];2)), хотя выглядит оно вполне смешно (для поля типа Currency). в сумме все равно циферки могут оказаться после второго знака – если посмотреть внимательнее. Поэтому, если сумма тоже подлежит хранению в базе – ее тоже надо явно округлить до нужного к-ва знаков можно сыскать предложения типа сложения форматированных строк, ЛП вот горячо не рекомендует, не знаю, правда, почему… На третьем шаге, если до него дойдет дело – придется писать свою функцию сложения. ЗЫ1 я прямо с подобными эффектами уже давно не встречался, это по памяти ЗЫ2 Деньги, они только пещерными методами и считаются, а не по арифметике. Причем в каждой пещере свои правила. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 19:36:22 |
|
||
|
Лишняя копейка в отчете
|
|||
|---|---|---|---|
|
#18+
Новый топик того же автора удален. Вот его содержание: Mari.PПростите за повторение вопроса, но честный поиск, чтение help и тп ничего не дали. Итак поле в таблице тип данных -денежный, формат данных денежный, число знаков после запятой 2. При суммировании поля в отчете формулой Sum(Поле1) возникает лишняя копейка, если суммировать вот так - Sum(Int(Поле1*100))/100 , то все нормально. Вопрос - почему такое происходит и нельзя-ли решить проблему более изящно чем деление на 100 Не нужно заставлять людей отвечать одно и то же по два раза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 17:51:29 |
|
||
|
Лишняя копейка в отчете
|
|||
|---|---|---|---|
|
#18+
Формат - это внешнее представление, на хранение данных и суммирование влияние не оказывает. а потому если в базе хранится 1.204 1.204 1.204 1.204 1.197 то на экране (отчёте) будет 1.20 1.20 1.20 1.20 1.20 ------ 6.01 , т к сумма будет 6.013 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 18:02:14 |
|
||
|
|

start [/forum/topic.php?fid=45&tid=1669154]: |
0ms |
get settings: |
4ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 332ms |

| 0 / 0 |
