Имя: Пароль:
1C
1С v8
2 знака после запятой
0 LivingStar
 
23.11.11
14:46
подскажите как использовать функцию формат с округлением до 2х знаков после запятой с округлением до целых
1 mikecool
 
23.11.11
14:47
не понял, пример в студию
2 zladenuw
 
23.11.11
14:47
Окр(<Число>, <Разрядность>, <РежимОкругления>)
Параметры:

<Число> (обязательный)

Тип: Число. Исходное число.
<Разрядность> (необязательный)

Тип: Число. Определяет число знаков дробной части, до которых производится округление. Если параметр отрицательный, то число округляется до соответствующего разряда в целой части, начиная с младших разрядов.
Параметр обязательный, если указан параметр <РежимОкругления>.
Значение по умолчанию: 0
<РежимОкругления> (необязательный)

Тип: РежимОкругления. Определяет режим округления. Помимо системного перечисления допускается использование числового параметра: 0 - если при округлении 1.5 = 1; 1 - если при округлении 1.5 = 2.
Значение по умолчанию: Окр15как20
3 mikecool
 
23.11.11
14:48
как понять - до целых, но 2 знака после запятой?
100,00?
4 vde69
 
23.11.11
14:48
правой кнопкой мыши, далее меню "Конструктор форматной строки" - там все элементарно
5 vmv
 
23.11.11
14:49
метод Формат() ничего не округляет - он форматирует
6 LivingStar
 
23.11.11
14:49
Формат(Результат.Количество/Результат.Коэффициент, "ЧЦ=10; ЧДЦ=2")

так сделал пока...
7 Maxus43
 
23.11.11
14:50
(6) где округление до целых тут?
8 Wobland
 
23.11.11
14:50
(6) теперь закрой глаза и вообрази, что коэффициент у тебя превратился в 0
9 vmv
 
23.11.11
14:51
(6) грамотнее писать так

РезультатОкругления = МойМетодХитрогоОкругления(Результат.Количество, Результат.Коэффициент);

РезультатОкругленияФ = Формат(РезультатОкругления, "ЧЦ=10; ЧДЦ=2");
10 LivingStar
 
23.11.11
14:52
40/30 = 1,3333333333

округляет 1,33, а надо 1,34
11 LivingStar
 
23.11.11
14:52
(3) с округлением в большую сторону....
12 Масянька
 
23.11.11
14:54
Еще больше стало не понятно....
В (0) до целых, в (11) до большего....
13 vmv
 
23.11.11
14:54
(11) начинай делать метод

МойМетодХитрогоОкругления(Количество, Результат, Рющки=Неопределено);
14 Maxus43
 
23.11.11
14:54
в запросе короче кошерней, Выразить там есть
15 Ткачев
 
23.11.11
14:55
(5)Формат(100.125, "ЧЦ=10; ЧДЦ=2") = "100.13"
16 vmv
 
23.11.11
14:57
(15) по-барабану когда ситуация отличается от системных установок округления, так что проще считать, что он ничего не округляет
17 Масянька
 
23.11.11
14:57
Автор, наверное, хочет: Окр(1.1+0.5, 1)
18 Ненавижу 1С
 
гуру
23.11.11
14:58
Окр(Значение,2)+(Значение<>Окр(Значение,2))/100
19 Maxus43
 
23.11.11
15:00
началось)
20 Масянька
 
23.11.11
15:01
Автор куда-то пропал.....
21 Aprobator
 
23.11.11
15:02
Формат(Цел(ТвоеЧисло) + 1, СтрокаФормата);
22 Aprobator
 
23.11.11
15:03
(20) звезданулся небось )
23 Aprobator
 
23.11.11
15:03
(21) неверно однако - поспешил.
24 LivingStar
 
23.11.11
19:31
спасибо, завтра буду пробовать!
25 LivingStar
 
24.11.11
06:37
(21)
40/30=1,3333333333

Формат(Цел(Результат.Количество/Результат.Коэффициент) + 1,"ЧЦ=10; ЧДЦ=2") = "2,00"

а надо 1,34

(18)
Окр(Результат.Количество/Результат.Коэффициент,2)+(Результат.Количество/Результат.Коэффициент<>Окр(Результат.Количество/Результат.Коэффициент,2))/100

это возвратило 1,34 !!!
26 Ткачев
 
24.11.11
07:18
(25)Формат(Результат.Количество/Результат.Коэффициент + 0.005, "ЧЦ=10; ЧДЦ=2") = "1,34"
Или
Окр(Результат.Количество/Результат.Коэффициент + 0.005, 2) = 1.34
27 Ненавижу 1С
 
гуру
24.11.11
08:33
(26) они 1 превратят в 1.01
28 Ткачев
 
24.11.11
09:02
(27)Точно, целые как то не проверил, с +0.004 получилось вроде нормально.
29 Ненавижу 1С
 
гуру
24.11.11
09:06
(28) 0.0001 превратит в 0, а надо в 0.01 ))
30 Ткачев
 
24.11.11
09:27
(29)Так у тебя и 0.000000000000000001 наверно превратит в 0.01, 0.004999... девятки это количество знаков после запятой для числа которые будут считаться, иначе 0.
31 Ненавижу 1С
 
гуру
24.11.11
09:32
(30) именно, просто хотел сказать, что это метод тупиковый
32 Snorkler
 
24.11.11
09:39
(0) Если я правильно понял, что нужно, то
ЧислоПослеОбработки  = Окр(ЧислоДоОбработки + 0.0049, 2, 1);
рулит…
33 Aprobator
 
24.11.11
09:44

ЧислоДляУсловия = ТвоеЧисло * 100;
Если Цел(ТвоеЧислоДляУсловия) = ТвоеЧИслоДляУсловие Тогда
    НужноеЧисло = Формат(ТвоеЧисло, "ЧДЦ=2");
Иначе
    НужноеЧисло = Строка(Окр(ТвоеЧисло, 2, 0) + 0,01);
КонецЕсли;
34 Aprobator
 
24.11.11
09:44
ТвоеЧислоДляУсловия = ЧислоДляУсловия
35 Aprobator
 
24.11.11
09:46
И вместо Строка после иначе можно юзать формат.
36 Snorkler
 
24.11.11
09:51
(32)+ Таки да… Вопрос про формат же… Тогда так:
ПрафильныйФормат = Формат(Окр(ЧислоДоОбработки + 0.0049, 2, 1), "ЧДЦ=2");
37 Aprobator
 
24.11.11
10:01
(36) все зависит от того какое число после запятой хочет контролировать ТС, например: Окр(1.0001 + 0.0049, 2, 1) = 1,01
38 Aprobator
 
24.11.11
10:03
(37) кстати, тады (33) тоже не катит.
39 Snorkler
 
24.11.11
10:06
(37) Судя по (10) именно это и надо…
40 Aprobator
 
24.11.11
10:08
(39) по (10) этого точно не скажешь.
Вот если бы ТС ответил, а что должно быть из 1.0001 - 1.00 или 1.01 тогда да.
В любом случае в (36) интересное решение. По крайней мере я до него не допер.