|
Высчитать процент |
☑ |
0
Recrut1
28.02.14
✎
09:12
|
Всем доброго времени суток! Есть такая задачка,имеется три показателя.
1 показатель - 83.5%
2 показатель - 7.5%
3 показатель - 9%
В сумме должно получиться 100%, но показатели должны выводиться в целых числах.Если использовать Окр(), то 0.5 будет всегда округлять в большую сторону. Итог 84+8+9= 101. Если бы было 2 показателя, то можно из 100 - показатель 1, но их 3. Есть ли способ высчитать его? Как я думаю, можно высчитать дельту и вешать его на макс. показатель. У кого какие соображения?
|
|
1
Starhan
28.02.14
✎
09:13
|
Правильно думаешь.
|
|
2
Ненавижу 1С
гуру
28.02.14
✎
09:14
|
84
7
9
|
|
3
Recrut1
28.02.14
✎
09:15
|
(2) ?
|
|
4
Azverin
28.02.14
✎
09:17
|
почему бы не сложить 83,5 + 7,5 +9 ?
|
|
5
Azverin
28.02.14
✎
09:17
|
(4) извините, пью кофе и прихожу в себя))))
|
|
6
Recrut1
28.02.14
✎
09:17
|
(4) В целых, дружище
|
|
7
zak555
28.02.14
✎
09:18
|
> Итог 84+8+9= 101
посмотри баланс, там бы получилось не 101, а 100
|
|
8
KUBIK
28.02.14
✎
09:24
|
(0) Посмотри в типовой бухии (2.0) функцию в ОМ РаспределитьПропорционально(...). Там это реализовано
|
|
9
Recrut1
28.02.14
✎
09:27
|
(8) Спасибо, гляну
|
|
10
Recrut1
28.02.14
✎
10:33
|
Кому интересно, как то так получилось:
КолОкр = 0;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ДробнаяЧасть = ВыборкаДетальныеЗаписи.Процент%1;
Если ДробнаяЧасть = 0.5 Тогда
КолОкр = КолОкр + 1;
КонецЕсли;
КонецЦикла;
КолОкр = КолОкр / 2;
ВыборкаДетальныеЗаписи.Сбросить();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ДробнаяЧасть = ВыборкаДетальныеЗаписи.Процент%1;
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
Если ДробнаяЧасть = 0.5 Тогда
Если Не КолОкр = 0 Тогда
Процент= Окр(ВыборкаДетальныеЗаписи.Процент);
КолОкр = КолОкр - 1;
Иначе
Процент= Окр(ВыборкаДетальныеЗаписи.Процент, 0,РежимОкругления.Окр15как10);
КонецЕсли;
ОбластьДетальныхЗаписей.Параметры.Процент= Процент;
КонецЕсли;
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
КонецЦикла;
|
|