Имя: Пароль:
1C
1С v8
Как округлить число
0 Rolandas
 
21.01.15
12:26
Здравствуйте,

Окр(12,123456, 2) - не работает выдаёт  12
Окр(12.123456, 2)  - округляется нормально
но в печатной форме переменные ходят именно с запятой, как быть?



Конфигурация "Управление торговлей", редакция 10.3 (10.3.13.3)
1 Волшебник
 
модератор
21.01.15
12:26
Формат ячеек
2 deniseek
 
21.01.15
12:27
(0) Формат()
3 Зеленый пень
 
21.01.15
12:29
123456 - ничего себе разрядность
4 Dmitriy_76
 
21.01.15
12:32
Окр(СтрЗаменить("12,123456",",","."), 2)
5 Rolandas
 
21.01.15
12:37
(1) формат ячеек ваобще не реагирует почемуто
(2) там же такой формат как и в Окр()
(3) это только пример
(4) результат 12123456
6 Волшебник
 
модератор
21.01.15
12:37
(4) это плохая идея
7 Rolandas
 
21.01.15
12:39
хм интересно, неужели никто с такой проблемой не сталкивался…
8 Волшебник
 
модератор
21.01.15
12:41
(7) Формат ячеек решает проблему.
9 Rolandas
 
21.01.15
12:46
(8) на ячейке поставил ЧДЦ=2, ничего не изменилось???
10 Dmitriy_76
 
21.01.15
12:46
(5) вычислил выражение :
Окр(СтрЗаменить("12,123456",",","."), 2)    12,12    Число


(6) че вдруг ?
11 Волшебник
 
модератор
21.01.15
12:47
(9) а надо так:
ЧЦ=15; ЧДЦ=6; ЧРД=,
12 Волшебник
 
модератор
21.01.15
12:48
(11)* или так: ЧЦ=10; ЧДЦ=2; ЧРД=,
13 cube033
 
21.01.15
12:51
(0) А в ячейку точно выводится число?
"но в печатной форме переменные ходят именно с запятой"
14 cube033
 
21.01.15
12:55
В языке выражений нет функции Окр(). Значит отчет формируется через обычный макет. А значит до момента вывода значение может дойти и текстом.
А вообще вот так должно работать:
ТоЧтоПойдетКакЗначениеПараметра = Формат(Окр(Число,2),"ЧЦ=10; ЧДЦ=2; ЧРД=,"));
15 Дмитрий
 
21.01.15
13:12
(0) "Окр(12,123456, 2) - не работает выдаёт  12"

Как это не работает? Число 12 округляет до 123456 знаков после запятой. Всё верно.
16 cube033
 
21.01.15
13:19
(0) Я конечно не могу вникнуть в вопрос. Как Вы передаете в Функцию ОКР() по своему выбору число с запятой либо с точкой? В реальном отчете, наверняка, передается переменная, но тогда её значение = либо 12.123456 либо "12,123456" либо "12.123456"
17 DS
 
21.01.15
13:22
(0) >> но в печатной форме переменные ходят именно с запятой, как быть?
В печатной форме "ходят" не числа, а их представление. Можно сделать хоть с тире. В программном коде - только точка.
18 Rolandas
 
21.01.15
13:24
(8) Понял почему на ячейку не работает, потому что у меня выводится щаблоном
(14) Спасибо это сработало!
(15) Работает, но не так как нужно
(16) "12,123456" Так передаётся програмой, "12.123456" так вставляю в ручную
19 Rolandas
 
21.01.15
13:28
(17) Неужели с представлением можно осуществить математические операции? например строка выглядит так
aaaa = Число(УчетНДС.ПолучитьСуммуДокументаСНДС(ЭтотОбъект.СсылкаНаОбъект.ДокументОснование))-Число(УчетНДС.ПолучитьНДСДокумента(ЭтотОбъект.СсылкаНаОбъект.ДокументОснование))+СкидкаИтог*1.21;
20 igork1966
 
21.01.15
13:34
(0) Это просто МДА.... СП тебе в помощь на предмет КОНСТАНТЫ И ФУНКЦИИ

(18) "12,123456" Так передаётся програмой, "12.123456" так вставляю в ручную
В мемориаз!
21 cube033
 
21.01.15
13:39
(19) Ну  Число(НекоеСтроковоеЗначение) уже говорит, что это было строковым  значением (представлением), но переведено в Числовое значение и только потом выполняются математические операции.
(18)" "12,123456" Так передаётся програмой"
Обычно под значением в кавычках подразумевается строковая переменная. Применять Формат числа к строковой переменной, на мой взгляд - некорректно. (Хотя 1с способна на чудеса))
Проверить можно отладчиком.
Если и правда передается такое значение, то скорее всего формат числа был задан до окончания всех операций с числом и нужно искать все операции, которые производились с данной перемнной. Найти и побороть лишнюю)))
22 necro
 
21.01.15
13:44
Как-то зачастили в последнее время странные темы...
23 Rolandas
 
21.01.15
13:55
Спасибо всем, вопрос считаю закрытым
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.