По теме из базы знаний
- Округление всегда в меньшую сторону в документе "Зарплата к выплате организаций"
- Остатки отпусков в 1С:ЗУП 2.5
- Минимализмы 2
- Округление суммы документа с учетом скидок для конфигурации УТ 11 (версия 11.2 и новее)
- Атол ККТ: Онлайн 54-ФЗ (ДТО 10.4) для 1С 8.1 УТ 10.3, Розница 1, УПП 1.3, без изменения конфигурации
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) adaviya,
Сумма = Окр(Сумма+0.5,0,0);
Сумма = Окр(Сумма+0.5,0,0);
bugromov; native-api; WhiteOwl; AndreySchel; AndrewVVS; user785225; Sejix; LifeRock; aleksey2; user1297929; ONLYTILT; КДЕ; tatoshka0403; Tolpinski; Gendelf; zuxelzz; Kolesonik; noctar; MaZaHacKa_13; Elisey654321; moralex2k; insurgut; user1088651; neo-ti; Dizel; klaus38; Kazaams; ckamakc; Jeka44; zoikins; kirbox; stasdivin; Kordyukov; sertak; Aleksandr_prof; MrTom; wowik; wertep; Tavalik; user949348; Xephone; DreamcastMD; SpartakM; KirinaAS; myjob1c; Merkalov; 02RUSlan; s1koka; Дмитрий74Чел; SagittariusA; rule6; dmitrii665; ShpiN; qwertyk; ger_kar; savauu; Roman_Go; vika64; Ingraf; dsdred; San4ez; Rudakov_D; olenka-ul; ustinov_greendale; ekomova; Insanity; SP2000; greenLiss; HomeInc; MrGreat; nadjav; lshaton; valleha; kihoxef532; etmarket; MrTwisterKRR; MherArsh; bobr_dobr; murza; Dmitrii D; Gureev;
+81
–
Ответить
Функция ОкрВсегдаВверх(ВходЧисло, РазрядОкругления)
Возврат ?(ТипЗнч(ВходЧисло) = Тип("Число"), Окр(ВходЧисло + 5 * Pow(10, -РазрядОкругления - 1), РазрядОкругления, РежимОкругления.Окр15как10), Неопределено);
//Если ТипЗнч(ВходЧисло) <> Тип("Число") Тогда
// Возврат Неопределено;
//КонецЕсли;
//
//Прибавка = 5 * Pow(10, -РазрядОкругления - 1); // 5 * 10^(-x - 1)
//Результат = Окр(ВходЧисло + Прибавка, РазрядОкругления, РежимОкругления.Окр15как10);
//
//Возврат Результат;
КонецФункции
Показать
(19) что мешает проверочную обработку написать и удостовериться, что работает:
Сч = 0;
Пока Сч < 24 Цикл
Результат = Окр(Сч + 0.5, 0, РежимОкругления.Окр15как10);
ТекстШаблона = "%1 = %2";
СообщениеПользователю = СтрШаблон(ТекстШаблона, Сч, Результат);
ОбщегоНазначения.СообщитьПользователю(СообщениеПользователю);
Сч = Сч + 0.1;
КонецЦикла;
Показать
(20) что за магия?? %)))
целое число
до 1-го знакак после запятой
до 2-х
длина числа 0.499999.. - зависит от входящего числа
если, например, нужно целое число, а на вход дали 1.001 и написать , но на выходе будет 1, но если написать , то сработает ;))
целое число
Окр(Число + 0.499999)
до 1-го знакак после запятой
Окр(Число + 0.049999, 1)
до 2-х
Окр(Число + 0.004999, 2)
длина числа 0.499999.. - зависит от входящего числа
если, например, нужно целое число, а на вход дали 1.001 и написать
Окр(Число + 0.49)
Окр(Число + 0.499)
(24) в смысле универсальный??
а чем не универсальный??
универсального не будет, так как есть один нюанса и это разрядность
если передавать разрядность, то тогда что-то типа этого
да и в запросах, если нужно целое число, то всегда спасает + 0.499999, так как товар не может быть половинкой
при округлении, например, цены в запросе с 2-мя знаками, то тоже спасает
а какой-то универсальный механизм с каким-то построчным окгруглением число - то это жесть
а чем не универсальный??
универсального не будет, так как есть один нюанса и это разрядность
если передавать разрядность, то тогда что-то типа этого
Окр(Число + 0.4999999999999 / ?(разрядность > 0, 10 * разрядность, 1), разрядность)
да и в запросах, если нужно целое число, то всегда спасает + 0.499999, так как товар не может быть половинкой
при округлении, например, цены в запросе с 2-мя знаками, то тоже спасает
а какой-то универсальный механизм с каким-то построчным окгруглением число - то это жесть
(28) тогда таких людей называют душнилами %))
есть шаблоны корректного решения, а реализации опытный программист сам придумает как использовать метод расчета...
или это будет метод, где подается одно число и параметры, относительно которых нужно расчитать
или это будет использоваться в запросе, где происходят логистические вычисления для планирования
есть шаблоны корректного решения, а реализации опытный программист сам придумает как использовать метод расчета...
или это будет метод, где подается одно число и параметры, относительно которых нужно расчитать
или это будет использоваться в запросе, где происходят логистические вычисления для планирования
(32) "гуру" обосрался %))
садитесь 2
p.s. не способны помочь, то хоть не мешайте остальным помогать
а теперь подумайте о производительности вычисления
и что-то я не увидел универсальности в запросе, не хардкор, а тем более производительности %))
почитайте что такое хардкор, а что не является хардкором
почитайте о тяжелости вычислений... хотя бы про +, -, *, /
p.s. простите, но я не достоен обучаться у такого "гуру"
дискуссия окончена.
садитесь 2
p.s. не способны помочь, то хоть не мешайте остальным помогать
а теперь подумайте о производительности вычисления
и что-то я не увидел универсальности в запросе, не хардкор, а тем более производительности %))
почитайте что такое хардкор, а что не является хардкором
почитайте о тяжелости вычислений... хотя бы про +, -, *, /
p.s. простите, но я не достоен обучаться у такого "гуру"
дискуссия окончена.
(37)
Все работает
На скрине табло с примерами
Окр(10 + 0.5, 0, РежимОкругления.Окр15как10) = 10
Окр(10.01 + 0.5, 0, РежимОкругления.Окр15как10) = 11
Окр(10.99 + 0.5, 0, РежимОкругления.Окр15как10) = 11
Окр(Число + 0.5, 0, РежимОкругления.Окр15как10);
Все работает
На скрине табло с примерами
Окр(10 + 0.5, 0, РежимОкругления.Окр15как10) = 10
Окр(10.01 + 0.5, 0, РежимОкругления.Окр15как10) = 11
Окр(10.99 + 0.5, 0, РежимОкругления.Окр15как10) = 11
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот