1. list770 20.04.19 15:01 Сейчас в теме

Помогите решить задачку на округление

Здравствуйте. Посоветуйте, как можно покрасивше решить следующую задачу:

В двух регистрах происходит расчет суммы за месяц по дням.

В первый регистр записывается общая сумма целиком, рассчитывается так:

(224,133333333333333333333333333 * 9 дней) + (87,466666666666666666666666667 * 21 день) = 3854,00

Во второй регистр записывается сумма на каждый день: 9 раз по 224,13 и 21 раз по 87,47. Получается 3854,04

Можно ли как то сравнять общую сумму во втором регистре, не меняя в реквизите количество знаков после запятой до 27 цифр?
Найденные решения
2. VladimirB 8 20.04.19 15:13 Сейчас в теме
(1)
В первый регистр сразу писать с округлением
т.е. 224,13 и 87.47

Окр(224,133333333333333333333333333 ,2)
Окр(87,466666666666666666666666667 ,2)
Остальные ответы
Избранное Подписка Сортировка: Древо
2. VladimirB 8 20.04.19 15:13 Сейчас в теме
(1)
В первый регистр сразу писать с округлением
т.е. 224,13 и 87.47

Окр(224,133333333333333333333333333 ,2)
Окр(87,466666666666666666666666667 ,2)
5. list770 20.04.19 15:20 Сейчас в теме
(2)да, скорее всего так будет правильно
6. VladimirB 8 20.04.19 15:23 Сейчас в теме
(5) У вас первый регистр с разрядностью после точки больше 2-х ?
7. list770 20.04.19 15:25 Сейчас в теме
3. ishelper 20.04.19 15:15 Сейчас в теме
(1)
Можно ли как то сравнять общую сумму во втором регистре
Невозможно: округление суммы не обязательно равно сумме округлений, это - правило математики
не меняя в реквизите количество знаков после запятой до 27 цифр?
А что даст увеличение количества знаков?

Вы попробуйте для начала определиться - какая из сумм правильная: 3854,00 или 3854,04?
4. list770 20.04.19 15:19 Сейчас в теме
(3)
какая из сумм правильная: 3854,00 или 3854,04?
- хороший вопрос) смотря на каком калькуляторе сверять будут...
8. Xershi 560 20.04.19 16:03 Сейчас в теме
(4) вопрос не на каком калькуляторе сверять, а по каким правилам.

НДС по 2 счётам слитым в одну реализацию с группировкой одинаковых позиций даёт такой же эффект.
9. Oldsad 22.04.19 05:01 Сейчас в теме
(4)

Если решите что первая сумма правильная, есть довольно простой алгоритм для корректировки ошибки округления:
	СуммаОсталось = 7;
	КолвоОсталось = 9;
	
	Пока КолвоОсталось > 0 Цикл
		ТекСуммаПозиции = Окр (СуммаОсталось / КолвоОсталось, 2);
		Сообщить (ТекСуммаПозиции);
		
		СуммаОсталось = СуммаОсталось - ТекСуммаПозиции;
		КолвоОсталось = КолвоОсталось - 1;
	КонецЦикла;
Показать
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата до 120 000 руб.
Полный день

Работа от Инфостарт
Санкт-Петербург
Временный (на проект)

Руководитель отдела внедрения 1С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день

Ведущий программист 1С
Сочи
зарплата от 82 500 руб. до 99 000 руб.
Полный день