Округление числа

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. micha26 10.08.16 13:08 Сейчас в теме
Всем привет.
Как округлить число до десятой доли после знака?
Я делаю так СуммаНДС = Окр(СуммаНДС,2,2); но один шиш СуммаНДС = 1400,51
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. AnryMc 849 10.08.16 13:17 Сейчас в теме
(1) micha26,

Вообще то РежимОкругления (3-й параметр) не может быть 2, там только 0 и 1 (Посмотрите документацию)...
2. AnryMc 849 10.08.16 13:15 Сейчас в теме
А какое число округляете и как Хотите?

ЗЫ Есть еще Окр15как10 и Окр15как20
3. ipoloskov 162 10.08.16 13:17 Сейчас в теме
Я делаю так СуммаНДС = Окр(СуммаНДС,2,2);

а надо делать так
Я делаю так СуммаНДС = Окр(СуммаНДС,1);
dicwork; ЧерныйКот; comptr; Noob001; +4 Ответить
6. micha26 10.08.16 18:57 Сейчас в теме
(3) ipoloskov, да ни фига, делал так уже.
7. Noob001 10.08.16 19:12 Сейчас в теме
(6) micha26, Синтаксис помощник говорит что:
Синтаксис:

Окр(<Число>, <Разрядность>, <РежимОкругления>)
Параметры:

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

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

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

Тип: РежимОкругления.
Определяет режим округления. Помимо системного перечисления допускается использование числового параметра: 0 - если при округлении 1.5 = 1; 1 - если при округлении 1.5 = 2.
Значение по умолчанию: Окр15как20.
Возвращаемое значение:

Тип: Число.
Число, полученное в результате округления.
Описание:

Округляет исходное число до нужной разрядности в соответствии с заданным режимом округления.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Пример:
// Округлим цену до сотен рублей
ОкругленнаяЦена = Окр(Цена, -2);

// Округлим цену до копеек
ОкругленнаяЦена = Окр(Цена, 2);
 
8. micha26 10.08.16 19:14 Сейчас в теме
(7) Noob001, да-да я читать умею...но не работает.
9. Noob001 10.08.16 19:20 Сейчас в теме
(8) micha26, Что значит не работает ? :)
Может вы путаете теплое с мягким?
Скриншот плиз из отладчика где Окр(СуммаНДС,1)= Число с копейками до сотого знака. Иначе: Неверю! (с) Станиславский.
10. micha26 10.08.16 22:17 Сейчас в теме
(9) Noob001, Станиславский это правильно, сам не верю - завтра сделаю еще раз и скрин присобачу.
11. Cooler 22 11.08.16 01:02 Сейчас в теме
(10) micha26,
завтра сделаю еще раз и скрин присобачу
Присобачьте лучше юридическое обоснование ваших хотелок - по какому праву вы собираетесь самовольно округлять до 10 копеек то, что предназначается государству?

Потому что если в случае округления вверх к вам государство претензий иметь не будет, то своих покупателей вы можете подставить - у них к вычету будет ставиться та сумма, которую выставили им вы, и которая не будет сходиться с ценой, умноженной на ставку НДС.

Ну, а в случае отбрасывания 1-4 копеек (округление вниз) это уже недоплата НДС с вашей стороны, со всеми вытекающими.
ЧерныйКот; +1 Ответить
12. micha26 11.08.16 08:34 Сейчас в теме
(11) Cooler, вы действительно думаете что я буду предоставлять какие-то обоснования - не смешите мои тапочки.
19. Cooler 22 11.08.16 10:26 Сейчас в теме
(12) micha26,
вы действительно думаете что я буду предоставлять какие-то обоснования - не смешите мои тапочки.
Ладно, не буду смешить - понял всю несостоятельность своих претензий.

Не вижу, почему бы программисту не помочь другому программисту 1Снику. Вот, берите и попробуйте разобраться - как и почему это работает:
СуммаНДС = Окр(СуммаДокумента/11.8*18,0,1)/10;


P.S. А мои тапочки посмеются позже - сейчас лето, жарко, и я их не ношу.
20. micha26 11.08.16 10:29 Сейчас в теме
(19) Cooler, я вас удивлю я не программист 1ЦЕ )))))) (без обид только) я инженер-электронщик с уклоном в системное администрирование. 1С начал из интереса изучать и...засосало )))) Спасибо - попробую понять что к чему.
23. TODD22 18 11.08.16 10:35 Сейчас в теме
(20) micha26,
я инженер-электронщик с уклоном в системное администрирование.

Ждём токаря-штукатура с уклоном в автоэлектрики.
25. micha26 11.08.16 10:38 Сейчас в теме
(23) TODD22, вообще есть такой только не штукатур...а что у тебя проблемы с этим какие-то?
27. TODD22 18 11.08.16 10:42 Сейчас в теме
(25) micha26,
а что у тебя проблемы с этим какие-то?

У меня никаких....
Просто звучит забавно "инженер-электронщик с уклоном в системное администрирование".....
Я как то привык что либо "инженер-электронщик" с какой либо специализацией, либо сисадмин....
28. micha26 11.08.16 10:52 Сейчас в теме
(27) TODD22, ну забавно это хорошо, в системное администрирование я сам уклонился (уклонист понимаешь) а специализация микропроцессоры если интересно.
30. TODD22 18 11.08.16 11:22 Сейчас в теме
(28) micha26, В этой стране электроники нет....
Сам по образованию электронщик, специализация связь, теле-радио вещание.
13. micha26 11.08.16 08:39 Сейчас в теме
(9) Noob001, не я путаю холодное с квадратным ))), получается вот какая фиговина - посчитал на куркуляторе сумму ндс, выходит 1400,508...ну и далее, значит получается, что копейки округляются из-за 3-го разряда, в 1С везде установлено два знака после запятой, как от этого избавится?
16. herfis 499 11.08.16 09:10 Сейчас в теме
(13) micha26, Я вижу тебя ждет знаний чудесная страна и первым этапом - осознание разницы между арифметическим округлением и отбрасыванием разрядов. Вторым этапом - то, что отбрасывание разрядов не имеет отношения к решению проблем "копеек" НДС.
17. micha26 11.08.16 09:26 Сейчас в теме
(16) herfis, ну знания это всегда хорошо, про второй этап я это осознал вообщем. (так чисто поинтересоваться, что это на аватарке у тебя???)
14. micha26 11.08.16 08:57 Сейчас в теме
(3) ipoloskov, был не прав (но не исправлюсь), только один хрен не получается.
5. Acasta 1 10.08.16 13:20 Сейчас в теме
А = Формат(Число, "ЧДЦ=1")
15. micha26 11.08.16 08:57 Сейчас в теме
(5) Acasta, да мне то два разряда надо бы.
18. micha26 11.08.16 09:48 Сейчас в теме
Короче вот чего:
СуммаНДС = Окр(СуммаДокумента/118*18,2,0);
СуммаДокумента/118*18 = 1400,508474576271 (это если на куркуляторе считать) и сумма НЭДЭСЭ = 1400,51 вот копейка эта на хрен не нужна! Бухгалтерии по крайней мере.
22. comptr 31 11.08.16 10:33 Сейчас в теме
(18) micha26, если не нужна копейка, то зачем округлять до двух знаков? Уже в (3) дали правильный ответ...
24. micha26 11.08.16 10:37 Сейчас в теме
(22) borodatii, не нужна именно эта (падшая женщина!) копейка, то есть если сумма документа будет к примеру 1400,5103435 то тогда (еще раз падшая женщина!) эта копейка нужна...вот как то так.
29. Cooler 22 11.08.16 11:09 Сейчас в теме
(24) micha26,
не нужна именно эта (падшая женщина!) копейка, то есть если сумма документа будет к примеру 1400,5103435 то тогда (еще раз падшая женщина!) эта копейка нужна...вот как то так.
Вас ждет еще много сюрпризов на том пути, по которому вы пошли - вычислять НДС из суммы документа.

Потому что кроме элементарного расчета СуммаНДС как результат каких-то манипуляций с СуммаДокумента/118*18 надо соблюсти следующее:
СуммаДокумента=СуммаБезНДС+СуммаНДС
СуммаНДС обязательно должна быть равна Окр(СуммаБезНДС/100*18,2,1)

Теперь азбучный пример: попробуйте рассчитать СуммаБезНДС и СуммаНДС при СуммаДокумента=360

Привет тапочкам!

P.S. И ведь это еще не все, потом дело может дойти и до вот таких мучений: http://www.forum.mista.ru/topic.php?id=701589
31. micha26 11.08.16 12:04 Сейчас в теме
(29) Cooler, а это не я пошел по такому пути, а 1С (ут 11.1.199) так что (30) TODD22, а кто сказал что в этой стране учился?
33. TODD22 18 11.08.16 12:07 Сейчас в теме
(31) micha26,
а кто сказал что в этой стране учился?

Да я не про учился. А про то что развалили всю электронную промышленность....
А в сервисе сидеть микроволновки чинить... не для меня.... :)
35. micha26 11.08.16 12:08 Сейчас в теме
(33) TODD22, так и мне не охота сотовые паять, вот и уклоняюсь куда можно и нельзя.
32. micha26 11.08.16 12:06 Сейчас в теме
(29) Cooler, прочитал, прикольно и твоим тапочкам тоже если чего (ну это когда из летней спячки выйдут).
36. micha26 11.08.16 12:15 Сейчас в теме
(29) Cooler, собстно из типовой
	СуммаДокумента = ЦенообразованиеКлиентСервер.ПолучитьСуммуДокумента(Товары, ЦенаВключаетНДС);
	СуммаНДС = Окр(СуммаДокумента/118*18,2,0); // 
21. v3rter 11.08.16 10:33 Сейчас в теме
Попробуйте
Цел(100*СуммаДокумента/118*18)/100

Надеюсь, Ваша бухгалтерия знает, что делает.
26. micha26 11.08.16 10:40 Сейчас в теме
(21) v3rter, спасибо попробую.
34. micha26 11.08.16 12:08 Сейчас в теме
Вообще мужики реально всем спасибо за помощь.
37. 3762515 11.08.16 12:28 Сейчас в теме
Прям какой-то срач развели из-за простого вопроса
38. TODD22 18 11.08.16 12:29 Сейчас в теме
(37) 3762515,
Прям какой-то срач развели из-за простого вопроса

Так где же вы были раньше? Пришли бы... растолковали топик стартеру...
40. micha26 12.08.16 08:59 Сейчас в теме
(38) TODD22, кстати да, вообщем залез я в общий модуль ЦенообразованиеКлиентСервер написал три или четыре строчки кода (маленькая экспортная функция) и все собственно, вопрос закрылся.
41. micha26 12.08.16 09:00 Сейчас в теме
(37) 3762515, срача не вижу, уж что вы там углядели не знаю.
39. herfis 499 11.08.16 12:51 Сейчас в теме
А я вот только сейчас узнал, что округлять можно на отрицательные значения (до целых десятков, сотен и т.п.)
Ыыыы...
ЧерныйКот; +1 Ответить
42. micha26 12.08.16 09:00 Сейчас в теме
43. dp200 5 29.08.16 06:40 Сейчас в теме
тоже решал данную проблему при помощи модуля ЦенообразованиеКлиентСервер
Оставьте свое сообщение

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