Имя: Пароль:
1C
 
Как округлить 1,48 до 2?
,
0 Ma3eIIa
 
19.04.15
19:46
Окр. округлить 1,48 до 2. как ?
НоваяСтрока.ЦенаПродажи = Окр(НоваяСтрока.ЦенаСНДС+НоваяСтрока.ЦенаСНДС*(ПроцентНаценки/100),0,1);

как быть ?
1 Ma3eIIa
 
19.04.15
19:46
процент наценки 30%
2 GROOVY
 
19.04.15
19:47
(0)  Математику в школе не преподавали?
3 Ma3eIIa
 
19.04.15
19:47
если цена 1,08 округляет до 1. а должно быть 2 :(
4 ДенисЧ
 
19.04.15
19:48
Цел(1.48+1)
5 Ma3eIIa
 
19.04.15
19:48
(0) у меня 1,08+ 30%  = 1,404. а функции написано так
Определяет режим округления. Помимо системного перечисления допускается использование числового параметра: 0 - если при округлении 1.5 = 1; 1 - если при округлении 1.5 = 2.
6 Ma3eIIa
 
19.04.15
19:49
(4) условие на проверку.
если сумма равно или меньше то Цел ? +1 ?
7 MadHead
 
19.04.15
19:49
(4) а если значение будет 2.0?
8 Ma3eIIa
 
19.04.15
19:50
вопрос в другом. нужно так. если есть копейки. тогда +1
9 GROOVY
 
19.04.15
19:51
(4)  Денис, ну их нафиг, ну как можно такие вопросы задавать?!
Как мне ФИО из фамилия имя отчество получить?
Как найти остаток от деления?
Блин, ну я не знаю...
10 GROOVY
 
19.04.15
19:51
(8)  Целое число можешь получить? Без копеек? Прибавить 1 можешь?
11 Ma3eIIa
 
19.04.15
19:52
(9) есть функции в общих модулях. там можно это получить.
12 Ma3eIIa
 
19.04.15
19:52
(10) умею. а спросить нельзя ?
13 MadHead
 
19.04.15
19:52
Знач - Цел(Знач) = 0 ? Цел(Знач) : Цел(Знач) + 1
14 Ma3eIIa
 
19.04.15
19:53
(13) сп.
15 Ma3eIIa
 
19.04.15
19:53
а поговорить :)))
16 GROOVY
 
19.04.15
19:54
(15) Мозг включать надо.
17 ДенисЧ
 
19.04.15
19:54
(9) Дело было вечером, делать было нечего...
18 GROOVY
 
19.04.15
19:54
Извините за негатив.
19 Ma3eIIa
 
19.04.15
19:55
(16) его завтра надо включать. когда переписывать отчет Валютную прибыль.. а сегодня он не как не хочет думать :(
20 Jackman
 
19.04.15
23:31
(0) Окр(Окр(Нашечисло,1),0)
21 Ma3eIIa
 
19.04.15
23:36
(20) так 1,08 будет = 1 при твоем (2) , понт
22 Ma3eIIa
 
19.04.15
23:37
(20) а .... молчю... все верно :)
23 Ma3eIIa
 
19.04.15
23:41
(22) не если 1,08 то все равно 1. а так нельзя.
24 Ma3eIIa
 
19.04.15
23:45
Окр(?(ПолеВвода1 - Цел(ПолеВвода1)=0,ПолеВвода1,ПолеВвода1+1),0,1)
25 Ma3eIIa
 
19.04.15
23:45
(13) верный ответ
26 Torquader
 
19.04.15
23:46
Окр(Знач+0.99) должно давать нужный результат.
27 Ma3eIIa
 
19.04.15
23:48
ох извраты. +1 то катит или надо именно 0,99999 :)
28 igork1966
 
19.04.15
23:48
(13)(26) вы его спросите во что 0 должен превратиться  ;-)
29 Ma3eIIa
 
19.04.15
23:50
да при чем тут 0. есть число 1,08. его нужно превратить в число+1.
ответ в (13)
30 Ma3eIIa
 
19.04.15
23:51
все что в дробной части превращаем в 1
31 igork1966
 
19.04.15
23:52
(30) 0.0001 => ?
32 Ma3eIIa
 
19.04.15
23:53
33 Ma3eIIa
 
19.04.15
23:54
(31) купили товар по 1 рублю. наценка в 30%. вот нужно округлить. что бы продать по 2 рубля.
34 Ma3eIIa
 
19.04.15
23:54
(33) законы не математики, а торговли :(
35 ifso
 
20.04.15
00:44
а в ценнике будет
2,60-50%=2,00
не ?)
36 rphosts
 
20.04.15
02:20
(34) тогда не употребляй метематические термины, например "Округлить".
37 Jackman
 
20.04.15
23:57
(23) Думал, что для чисел, типа, 1.48.. Если нужно, чтобы 1.01 округлялось до 2, то можно так:
?(ПолеВвода1<>Цел(ПолеВвода1),Цел(ПолеВвода1)+1,ПолеВвода1)
38 Vladal
 
21.04.15
07:46
(37) Упрости выражение до
Цена = ПолеВвода1 + ?(ПолеВвода1<>Цел(ПолеВвода1),  1, 0)


(35) Будет, будет ))
39 План счетов
 
21.04.15
08:06
Окр(Окр(ТвоеЧисло,1),0)
40 1Сергей
 
21.04.15
08:16
Цел(Чис + 0.999999999)

нагородили, блин
41 ам794123
 
21.04.15
08:33
ну раз пошла такая пьянка добавлю свой вариант)))

Цена = 0;
Пока Чис > Цена Цикл
  Цена = Цена + 1;
КонецЦикла;
42 Ващета
 
21.04.15
08:36
(35) в ценнике будет 0,60-50%=1,00
43 gae
 
21.04.15
08:38
(40) главное, количество девяток должно соответствовать точности Чис
44 Супер король
 
21.04.15
08:39
(0) Результат = Окр(1,48 + 0,5);

Результат = 2
45 Ващета
 
21.04.15
08:40
(41) Бесконечный цикл?
46 Супер король
 
21.04.15
08:41
поправка (44)
(0) Результат = Окр(1,48 + 0,5,,РежимОкругления.Окр15как10);
47 Супер король
 
21.04.15
08:45
Запятые на точки исправил, режим округления сократил:

Результат = Окр(1.48 + 0.5,, 0);
48 Супер король
 
21.04.15
08:47
Но для 1с правильно (46) конечно же
49 Лесной
 
21.04.15
08:48
Да что вам в (40) не нравится?
Все просто и лаконично, без условий и циклов.
50 Фокусник
 
21.04.15
08:49
(40) А что выдаст формула при "округлении", например, числа 0.99 ? ;)

PS 0.499999999999 нужно добавлять тогда уж...
51 Супер король
 
21.04.15
08:50
(49) так лучше все же:Результат = Окр(1.48 + 0.5,0, 0);
52 Лесной
 
21.04.15
08:52
(50)(51) зачем использовать округление когда нужно получить целое?
53 Супер король
 
21.04.15
08:53
(52) Затем что округление по написанию компактнее и без всяких условий работает.
54 Супер король
 
21.04.15
08:58
Цена 1.48;
Цена = Окр(Цена + 0.5, 0, 0);


Так понятнее наверное будет. В результате Цена равна 2
55 Ненавижу 1С
 
гуру
21.04.15
09:40
свои пять копеек:

Цел(Цена)+1-Цел(1+Цел(Цена)-Цена)
56 Serg_1960
 
21.04.15
09:48
Мои пять копеек: кроме Окр() ничего более не нужно.
57 zlnk
 
21.04.15
09:50
(54) Для цена=1 не работает.
58 D_E_S_131
 
21.04.15
09:58
(56) Как?
59 D_E_S_131
 
21.04.15
09:59
Упс... (57) меня смутил своим вопросом. (54) нормально работает.
60 Ёпрст
 
21.04.15
10:00
(0)

Открыть типовую, втыкать в
общие модули,Ценообразование
Функция ОкруглитьЦену(Число, ПараметрПорядокОкругления, ОкруглятьВБольшуюСторону) Экспорт
61 Ёпрст
 
21.04.15
10:01
если че, там можно "округлить" до 0.01, 0.05,0.1,0.5,1,5,10,100
62 Serg_1960
 
21.04.15
10:03
(57) Оно не работает для 1,2,3... и далее со всеми остановками :)

Зачем целое округлять? Округление - это, как минимум, наличие дробных...
63 ЧеловекДуши
 
21.04.15
10:03
(0) Зачем?
Почему такая несправедливость?
64 ЧеловекДуши
 
21.04.15
10:04
(11) Это риторические вопросы :)
65 ЧеловекДуши
 
21.04.15
10:09
(62) Для полного апофеоза от действительности :)


Извечная борьба с копейками при округлении.
(0)ТС, ты лучше сам не придумывай. Спроси у Заказчика, как он хочет. И сделай так, как хочет :)
66 Serg_1960
 
21.04.15
10:23
(65) +1 ... а Заказчик захочет шкалу округлений по диапазонам :) Чем больше цена - тем больше округление в сторону большего.

PS: Эх, нет у вас полёта фантазии...
67 ИС-2
 
naïve
21.04.15
10:41
где-то в модуле Ценообразования была функция.

А так можно Окр(X + 0.5),  чтобы округлять в большую сторону
68 Супер король
 
21.04.15
10:58
(62) >> (57) Оно не работает для 1,2,3... и далее со всеми остановками :)

Для всего работает. Ты ошибся.
69 Супер король
 
21.04.15
10:59
(67) Не совсем веоно. Надо так (см (54)):

Цена = Окр(Цена + 0.5, 0, 0);
70 stix2010
 
21.04.15
11:02
(66) тут от главбуха зависит: если нам должны, то 1,48 = 2, если мы должны   то 1,48 = 1
71 Jackman
 
21.04.15
12:17
(69) Да, это лучший вариант. А 1.01 до 1 округлит?

(40)Чис = 10 и уже не работает
72 Супер король
 
21.04.15
12:43
(71) 1.01 округлит до 2
73 1Сергей
 
21.04.15
13:11
(50) вернет 1, как и требуется
74 1Сергей
 
21.04.15
13:13
(71) >>Чис = 10 и уже не работает

с чего бы это?
75 Jackman
 
21.04.15
13:32
(74) Т.е. для 10.0000000000000001
76 ЧеловекДуши
 
21.04.15
13:37
(66) И чего? Я такое реализовывал :)
77 Супер король
 
24.04.15
09:03
(75) Вернет 2. Чем не нравится?
78 Супер король
 
24.04.15
09:05
а, ты про другое
Основная теорема систематики: Новые системы плодят новые проблемы.