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

1. SantiouS 15.01.21 12:34 Сейчас в теме
Как в коде 1с8 обрезать число без округления?
Например, есть число 12,566666667 и нужно представить его в формате, который определяет два знака после запятой, но без округления, то есть результат в таком случае должен быть: 12,56. Командой формат и окр() происходит округление и число преобразуется в 12,57.
По теме из базы знаний
Найденные решения
5. soft_wind 15.01.21 12:40 Сейчас в теме
с десятичными так
Обрезка = Цел(ВашеЧисло * 100) / 100 ;
user1803307; AKV77; teplova; ssn1978; vika64; ssn5810; Поручик; ls600; SantiouS; +9 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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,КоличествоЗнаков) ;
indefinitum000; 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 ;
user1803307; AKV77; teplova; ssn1978; vika64; ssn5810; Поручик; ls600; SantiouS; +9 Ответить
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 186 08.11.22 15:22 Сейчас в теме
Удалил, свое сообщение. Не увидел, что условие без округления
13. GSokolov 320 08.06.23 18:45 Сейчас в теме
(9) Вообще-то "обрезание" у ТС это тоже округление, которое с добавкой "вниз".
10. Scroudge 3 08.06.23 13:21 Сейчас в теме
ещё бы в формате ячейки отчёта так можно было
11. glek 119 08.06.23 16:23 Сейчас в теме
(10) А зачем так извращаться в формате ячейки?
А вообще, написать функцию, в отчете сделать вычисляемое поле с вызовом своей функции и выводить в результат уже это поле.
14. Scroudge 3 08.06.23 20:09 Сейчас в теме
(11) речь о частном случае. конфигурация унф. встроенная обработка печать ценников. макет делается в режиме предприятия пользователем. и окромя доступа к полям типа Цена у него вариантов нет.
а есть допустим потребность в ценнике написать 23 руб. 58 коп.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот