Обрезать число вместо округления

1. SantiouS 15.01.21 12:34 Сейчас в теме
Как в коде 1с8 обрезать число без округления?
Например, есть число 12,566666667 и нужно представить его в формате, который определяет два знака после запятой, но без округления, то есть результат в таком случае должен быть: 12,56. Командой формат и окр() происходит округление и число преобразуется в 12,57.
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 15.01.21 12:38 Сейчас в теме
ЦелаяЧасть = Цел(ВашеЧисло);
3. SantiouS 15.01.21 12:39 Сейчас в теме
(2) Мне нужно оставить 2 знака после запятой.
7. user856012 13 15.01.21 12:49 Сейчас в теме
(3)
нужно оставить 2 знака после запятой.
Универсальный вариант, где количество знаков задается программно:

Обрезка = Цел(ВашеЧисло * Pow(10,КоличествоЗнаков) / Pow(10,КоличествоЗнаков) ;
rusksa; SantiouS; +2 Ответить
12. o4karek 08.06.23 16:57 Сейчас в теме
(3) Оно и останется в момент присвоения реквизиту с точностью "2". А в памяти это все равно живет с полной разрядностью.
4. SantiouS 15.01.21 12:40 Сейчас в теме
Предполагаю такой алгоритм, но, возможно, можно как то оптимальнее.
КоличествоРазрядов = Макс(СтрДлина(ВыборкаДетальныеЗаписи.Цена)-СтрДлина(Цел(ВыборкаДетальныеЗаписи.Цена))-1,0);
ВсегоСимволов=СтрДлина(ВыборкаДетальныеЗаписи.Цена);
РезультатЦена=Число(Лев(ВыборкаДетальныеЗаписи.Цена,ВсегоСимволов-КоличествоРазрядов+2));
5. soft_wind 15.01.21 12:40 Сейчас в теме
с десятичными так
Обрезка = Цел(ВашеЧисло * 100) / 100 ;
teplova; ssn1978; vika64; ssn5810; Поручик; ls600; SantiouS; +7 Ответить
6. SantiouS 15.01.21 12:41 Сейчас в теме
(5)
Цел(ВашеЧисло * 100) / 100

Отлично, спасибо. Гениально)
teplova; vika64; +2 Ответить
8. vika64 75 08.11.22 15:10 Сейчас в теме
(5)
Цел(ВашеЧисло * 100) / 100
спасибо большое
15. teplova 69 27.07.23 11:52 Сейчас в теме
9. coollerinc 176 08.11.22 15:22 Сейчас в теме
Удалил, свое сообщение. Не увидел, что условие без округления
13. GSokolov 320 08.06.23 18:45 Сейчас в теме
(9) Вообще-то "обрезание" у ТС это тоже округление, которое с добавкой "вниз".
10. Scroudge 2 08.06.23 13:21 Сейчас в теме
ещё бы в формате ячейки отчёта так можно было
11. glek 118 08.06.23 16:23 Сейчас в теме
(10) А зачем так извращаться в формате ячейки?
А вообще, написать функцию, в отчете сделать вычисляемое поле с вызовом своей функции и выводить в результат уже это поле.
14. Scroudge 2 08.06.23 20:09 Сейчас в теме
(11) речь о частном случае. конфигурация унф. встроенная обработка печать ценников. макет делается в режиме предприятия пользователем. и окромя доступа к полям типа Цена у него вариантов нет.
а есть допустим потребность в ценнике написать 23 руб. 58 коп.
Оставьте свое сообщение
Вакансии
Разработчик 1С
Ростов-на-Дону
зарплата от 230 000 руб. до 260 000 руб.
Полный день

Консультант 1С ERP
Москва
зарплата от 200 000 руб. до 250 000 руб.
Полный день

Аналитик 1C
Самара
зарплата от 160 000 руб. до 180 000 руб.
Полный день

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

Аналитик 1С
Казань
зарплата от 200 000 руб. до 250 000 руб.
Полный день