Округление в запрос до 2-х знаков после запятой

1. HIVvich 07.10.22 10:53 Сейчас в теме
Всем привет. Есть число в запросе:
БазаРасчета.БазаПлан * ВТРК.Результат / ВТСуммаРезультатаСвода.СуммарныйРезультат

равное 3140,943999
которое необходимо, чтобы было округлено до такого числа: 3140,94
делаю выразить( формулу как число(15,2)) = получаю 3140,95
делаю окр(формула, 2) то же самое
что надо сделать, чтобы округлилось до числа 3140,94 ?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 35 07.10.22 10:56 Сейчас в теме
(1)
делаю выразить( формулу -0.005 как число(15,2))
3. MazhutkoAV 07.10.22 10:58 Сейчас в теме
(2) а 3140,946000 тогда округлит в меньшую сторону, тогда как надо в большую
4. HIVvich 07.10.22 11:00 Сейчас в теме
(2) тоже пробовала с разными минусами, вот именно этот пример даст : 3 140,92
7. Sashares 35 07.10.22 11:06 Сейчас в теме
(4)Проверил в консоли, что-то вы темните.
Прикрепленные файлы:
8. HIVvich 07.10.22 11:06 Сейчас в теме
(7)вот только сама такое проделала:) с формулой не работает, сейчас скину производные
5. HIVvich 07.10.22 11:01 Сейчас в теме
честно говоря замоналась уже разными способами, не получается
6. HIVvich 07.10.22 11:06 Сейчас в теме
самое интересное, если в консоли сделать просто вот так

выбрать выразить(3140.943999 как число (15,2)) как поле1

тогда на выходе будет 3140.94 что и необходимо, но с формулой такое почему то не работает
9. user1203706 14 07.10.22 11:11 Сейчас в теме
(1) ну так напиши

(0.000001/0.000001)*БазаРасчета.БазаПлан * ВТРК.Результат / ВТСуммаРезультатаСвода.СуммарныйРезульта
т
10. HIVvich 07.10.22 11:39 Сейчас в теме
вот как у меня было:

сумма(ВЫБОР
КОГДА ЕСТЬNULL(ВТСуммаРезультатаСвода.СуммарныйРезультат, 0) = 0
ТОГДА 0
КОГДА ЕСТЬNULL(ВТРК.ЗначениеПоказателя, 0) = 0
И ЕСТЬNULL(ВТРК.Результат, 0) < 0
ТОГДА 0
ИНАЧЕ выразить(БазаРасчета.БазаПлан * ВТРК.Результат / ВТСуммаРезультатаСвода.СуммарныйРезультат как число(15,2))
КОНЕЦ)

вот как сделала:

выразить(сумма(ВЫБОР
КОГДА ЕСТЬNULL(ВТСуммаРезультатаСвода.СуммарныйРезультат, 0) = 0
ТОГДА 0
КОГДА ЕСТЬNULL(ВТРК.ЗначениеПоказателя, 0) = 0
И ЕСТЬNULL(ВТРК.Результат, 0) < 0
ТОГДА 0
ИНАЧЕ БазаРасчета.БазаПлан * ВТРК.Результат / ВТСуммаРезультатаСвода.СуммарныйРезультат
КОНЕЦ) как число(15,2)) и все получилось
из-за группировки что ли такое
11. user1203706 14 07.10.22 11:42 Сейчас в теме
(10) нет. Тут округление всей суммы против округления складываемых аргументов этой суммы
12. user1831019 07.10.22 12:09 Сейчас в теме
Никого не смущает в запросе слово СУММА()?
13. HIVvich 07.10.22 12:40 Сейчас в теме
(12) ну у меня группировка
16. user1831019 07.10.22 13:50 Сейчас в теме
(13) Именно. Классика - округление суммы против суммы округлений.

Сколько строк в результате запроса, если не использовать группировку?
18. HIVvich 07.10.22 13:53 Сейчас в теме
(16)по-разному,в 1 случае было 4 строки, во 2-м случае - 2 строки, это отдельно взятые просто из отчета
20. user1831019 07.10.22 13:55 Сейчас в теме
(18) Ну вот я и говорю - классика!
14. HIVvich 07.10.22 12:54 Сейчас в теме
теперь то, как я исправила запрос снова округляет не правильно:
по старому варианту = 1 135,734999 округляет как надо = 1135,74
по новому вариант, где я сделала выразить перед суммой, округляет так: 1135,73
15. spacecraft 07.10.22 13:31 Сейчас в теме
(14) математически правильно 1 135,734999 округлять до 1135,73.
17. HIVvich 07.10.22 13:52 Сейчас в теме
(15) согласна, пользователям не угодишь:(
19. Sashares 35 07.10.22 13:53 Сейчас в теме
(17)А как надо? Округлять всегда в большую сторону? Вы конкретизируйте требования.
21. user1831019 07.10.22 13:57 Сейчас в теме
(19) Ну блин, ты же опытный чувак, тут стандартное противоречие - округление итоговой суммы детальных чисел против суммы заранее округленных детальных чисел...
22. HIVvich 07.10.22 14:16 Сейчас в теме
получается, наверное, надо сделать так, не округлять вообще, сгруппировать эти строки без округления, все поместить во вт, и на выходе сделать выразить(итог как число(15,2)), уже как округляется значит так и оставить
23. Release 07.10.22 14:19 Сейчас в теме
(22) Нет, нужно, в первую очередь, определиться со способом округления. А потом уже выбирать соответствующий метод.
А то для первого примера у вас один метод, а для последнего он уже другой и предыдущий не подходит.
24. user1001572 25.11.22 14:14 Сейчас в теме
Окр(Окр( 1135.734999,3), 2 ) = Окр( 1135.735 ,2) = 1135,74
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот