#0
by DjMah
Всем приветы. Столкнулся с проблемкой: После определенных вычислений получается ооочень длинное число с большим количеством знаков после запятой. Результат округления стандартным способом до двух знаков получается не верным (из 100% в каких то вычислениях получается 92%, в каких-то 109%). Подскажите способ. Есть вариант делать округление с последнего знака в числе, и так до ножного разряда округлять. Может есть какой-нить способ попроще? Заранее спасибо, всех с весной и с раздевающимися девушками.
#2
by DjMah
1,23704159 1,70538824 1,827494366 0,580618726 0,580618726 0,580618726 1,234992829 1,671788568 1,843064946 0,858020897 1,234992829 0,842040565 0,842040565
#3
by DjMah
Все не стал приводить числа, но вот такие результаты получаются. Это число в процентах из 100% возможных.
#5
by LordCMEPTb
Как вариант, можно сначала производить расчеты, а затем округлять полученное число, а не округлять числа сначала, а затем производить расчеты.
#6
by Lama12
В результатах округления получается так? 1,24 1,71 1,83 0,58 0,58 1,23 1,67 1,84 0,86 1,23 0,84 0,84 Это классическое математическое округление. Округлять с последнего знака в числе - глупо. Может набежать статистическая ошибка намного превышающая погрешность при классическом округлении. Есть еще финансовые и другие виды округлений. Какой нужен?
#7
by DjMah
Округлить каким-то способом, чтобы вот такие числа в сумме дали результат, как можно ближе к 100. Сейчас получаются расхождения большие. У меня так и есть. Сначала расчеты, потом округление.
#8
by DjMah
Да, такие получаются. Я не слышал про другие виды округлений (простите за необразованность) Нужен вариант который даст на выходе более точный результат.
#9
by Lama12
Похоже я не совсем понял задачу. Смущают проценты. Правильно ли я понимаю что сумма полученного результата из сравнивается с суммой из ?
#10
by ЧеловекДуши
Округляй до 10-ти значков. В итоге округляй до 2-ух. В общей картине получишь погрешность 0.01.
#12
by ЧеловекДуши
Можно округлить вообще, что бы было 100. Последний процент подгоняешь под 100, если он превышает :)
#14
by DjMah
Хммм... Это все результат расчета процентов из 100. Грубо говоря, количество (процентов) голосов, зависимых от жилплощади по отношению к общей площади здания. Подгонять последний - айайайай!! =))
#15
by эксвилл
Округление - это уменьшение точности. По определению. Если нужна большая точность - не округляй.
#16
by LordCMEPTb
Не совсем понял, т.е. сумма чисел из должна стремиться к 100, но она не получается, потому что какое-то округление числа дает от 0.92 до 1.09? Может дело в том, что исходные данные не подразумевают в сумме давать 1?
#17
by Lama12
Понятно. Обычно поступаю двумя способами. 1. Распределяю накопившуюся погрешности пропорционально величине значения из конечного множества. Т.е. в нашем случае всю погрешность можно кинуть на величины 1.86, 1.83, 1.71 и т.д. в зависимости от паранои (можно только на 1.86). 2. Распределить округленные величины использовать как показатели доли для распределения первоначальной суммы алгоритмом пропорционального распределения (в УПП мне очень понравился алгоритм).
#18
by DjMah
Я не спорю. Нужно чтобы это уменьшение было как можно меньше (простите за тавтологию)) Сложно сформулировать, дефчонки забили все сознание. в только пример чисел из которых должно получится 100, но в результате округления 100 не получается =)) Спасибо, попробую второй способ применить.
#20
by Serg_1960
Имхо, у автора классическая безнадёжная попытка поймать копейку в ведомости с "ИТОГО" - сумма округлений значений не равна округлению суммы значений :)
#21
by DjMah
Спасибо! Попробую сейчас. Я не пытаюсь поймать копейку, я лишь спросил как можно уменьшить погрешность при округлении длинных чисел.
#22
by batman69
А может вам и не нужно округлять, вы работайте с числом "1,234992829 ", а пользователю показывайте "1,24", ему достаточно для понимания процента.
#24
by Мэс33
как сказали выше - везде работаете с точными данными (9 знаков после запятой как я понял). Округляете в самом конце.
#26
by LordCMEPTb
Понятнее не стало. Если есть 3 числа: 0.33333 0.33333 0.33334 То в сумме они дают 1. Как ни округляй. Но если их сначала округлить до 2 знаков, а затем сложить, то получим 0.99, а не 1. Потому, если числа должны давать 100%, а не дают, то надо либо складывать исходные числа, а затем округлять, либо увеличивать каждое число на определенный коэффициент, чтобы подогнать общую сумму к 100%.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Округление чисел в формулах печатной формы?
- Округление в балансе
- Как сделать в УСН округление всех сумм до 4 знака после запятой.
- Округление цены или округление суммы?
- подскажите функцию в Delphi округления до 2-х знаков после запятой
- Округление числа
- Округление
- Округление чисел в аналитике до целого
- Плагин для лечения выгрузки и загрузки больших баз в 1С 7.7
- Округление числа в запросе
- 5 знаков после запятой при расчете больничных
- Проблемы с количеством знаков после запятой в цене товара
В этой группе 1С
- ДокументОбъект в реквизит управляемой формы
- Исправление ошибок прошлых лет в бухгалтерском учете.
- Нарушение целостности Информационной базы
- Декларация НДС 4 квартал разделы 3 и 9
- Как быстро пометить на удаление порядка 250000 документов УТ 11?
- Таблица XXX не имеет нового поколения и не может быть модифицирована
- v7: Принтер этикеток Godex BZB-2 и 7.7 ТиС
- при Значении отбора
- УТ 11.2 фоновое задание выборочно помечает на удаление документы. Как возможно?
- Добавление нового поля в управляемую форму типовой конфигурации
- Не работает стандартный период у временной таблицы СКД
- Как правильно списать материалы в производство 1С УПП
- После перевода на УФ, на клиенте стали недоступны процедуры общего модуля
- Импорт xml в 1С
- v7: 1С 7.7 бух запись книги покупок изменить код вида операции на 22
- 8.3. Как правильно открыть форму выбора справочника?
- Виды запасов и продажа с использованием запасов другой организации УТ 11
- Автоматическое добавление строк в табличную часть документа
- Обмен УТ 11.2 - БП 3.0. Объект не найден
- Как подружить 1С и PostgreSQL по типу данных uuid