|   |   | 
| 
 | v7: Округление 0.5 в 1с 7.7 | ☑ | ||
|---|---|---|---|---|
| 0
    
        kobzon 20.03.14✎ 13:18 | 
        Сделали повышение цен на продукцию. В 1с ПУБ с помощью обработки формирования цен, произвели наценку 5%. Чтобы цены были более-менее круглыми, сделали округление до 0.5. 
 Но как оказалось 1с округляет по своему. И цену 116,60 округляет до 117 рублей. Вроде 60 копеек это не 90. Можно как то сделать чтобы была золотая середина? Или сказать начальству что так и должно быть - не крохоборствуйте? | |||
| 1
    
        НеБорис Нуралиев 20.03.14✎ 13:20 | 
        (0) А по вашему 116,60 до скольки округлить нужно?     | |||
| 2
    
        ДенисЧ 20.03.14✎ 13:20 | 
        по правилам арифметики Окр(116.6,1) = 117.
 Бегом в школу (третий класс, по-моему) | |||
| 3
    
        kobzon 20.03.14✎ 13:21 | 
        Да я знаю. Но им хочется чтобы до 75 копеек выставлялось 50 ком, а после уже рубль.     | |||
| 4
    
        НеБорис Нуралиев 20.03.14✎ 13:22 | 
        Это уже не округление. Пишите свой алгоритм.     | |||
| 5
    
        kobzon 20.03.14✎ 13:23 | 
        (2) И в том то и дело что не Окр(116.6,1) = 117, а Окр(116.6,0.5) = 117.     | |||
| 6
    
        kobzon 20.03.14✎ 13:25 | 
        Я с этими копейками с ума сойду. По мне так сделать до рубля рас это базовый тип цент.     | |||
| 7
    
        fvadim 20.03.14✎ 13:26 | 
        (5) курим справку по Окр, 0.5 тут вообще отношения к желаемому результату не имеет     | |||
| 8
    
        fvadim 20.03.14✎ 13:28 | 
        решение в (4)     | |||
| 9
    
        ДенисЧ 20.03.14✎ 13:32 | 
        (5) Встроенные функции языка (Script functions)
 Окр (Round) Синтаксис: Окр(<Число>, <Разрядность>, <РежимОкругления>) Параметры: <Число> (обязательный) Тип: Число. Исходное число. <Разрядность> (необязательный) Тип: Число. Определяет число знаков дробной части, до которых производится округление. Если параметр отрицательный, то число округляется до соответствующего разряда в целой части, начиная с младших разрядов. Параметр обязательный, если указан параметр <РежимОкругления>. Значение по умолчанию: 0 Как разрядлность может быть ползнака? | |||
| 10
    
        VladZ 20.03.14✎ 13:38 | 
        Нужная цена = Цел(исходнаяЦена / 0,5) * 0,5;
 Как-то так. | |||
| 11
    
        VladZ 20.03.14✎ 13:40 | 
        +10 Но это не округление.     | |||
| 12
    
        kobzon 20.03.14✎ 13:50 | 
        Да. Фигня получается. Но не очень правильно что цена 100.51 Округлится до 101.     | |||
| 13
    
        Mikeware 20.03.14✎ 13:52 | 
        (9) если 0.5 округлить до литра на рыло....     | |||
| 14
    
        ДенисЧ 20.03.14✎ 13:52 | 
        (12) А это уже забота твоя...
 То есть не твоя, конечно. А программиста. Который реализует нужные алгоритмы. | |||
| 15
    
        Mikeware 20.03.14✎ 13:54 | 
        (14) Жадничают они...  нет у них программиста...     | |||
| 16
    
        kobzon 20.03.14✎ 13:55 | 
        Он тут не нужен. Ребят я вопрос задал на уровне пользователя.
 Я понимаю что многие в папиных трусах. | |||
| 17
    
        ДенисЧ 20.03.14✎ 13:56 | 
        (16) Ты не на уровне пользователя задал вопрос. А на уровне дошкольника.     | |||
| 18
    
        ДенисЧ 20.03.14✎ 13:56 | 
        (15) На продажников есть, на ламерьё есть, а на программиста нет? Что ж, туда и дорога...     | |||
| 19
    
        PR 20.03.14✎ 13:56 | 
        Умножить на 2, округлить до 0 знаков после запятой, поделить пополам.
 Задачка на 10 секунд мозговой деятельности. | |||
| 20
    
        fvadim 20.03.14✎ 13:57 | 
        (12) бггг, "не очень правильно".
 одноэс предлагает 2 варианта округления - в большую и в меньшую, остальные хотелки ручками, в (10) - решение. | |||
| 21
    
        Ненавижу 1С гуру 20.03.14✎ 13:59 | 
        Окр(исходнаяЦена / 0,5) * 0,5;     | |||
| 22
    
        kobzon 20.03.14✎ 14:04 | 
        (10), (21) Спасибо!     | |||
| 23
    
        VladZ 20.03.14✎ 14:12 | 
        (22) Информация к размышлению: 
 исходная цена: 11,75. Моя функция приведет к 11,5 Функция в (21) - к 12. Решайте, как вам "правильнее" | |||
| 24
    
        Ненавижу 1С гуру 20.03.14✎ 14:16 | 
        (23) у тебя к нижнему значению, у меня округляет     | |||
| 25
    
        floody 20.03.14✎ 14:26 | 
        //******************************************************************************
 // глОкруглить(Числ, ПорядокОкругления) // // Параметры: // Числ - исходное число // ПорядокОкругления - элемент перечисления Порядки окгугления: // "шаг" округления (0.01 (арифметическое), 0.01, 0.05, 0.1, 0.5, 1, 5, 10, 50, 100) // // Возвращаемое значение: // Округленное по заданному порядку значение // // Описание: // Округляет число вверх по заданному порядку. Т.е число 123.37 при порядке // округление 0.5 превратиться в 123.50, а число 0.1 при порядке округления // 5 станет равным 5. // Если значение перечисления ОкрТочно, то округляет арифметически до 0.01 // Функция глОкруглить(Числ, ПорядокОкругления) Экспорт Это не подойдет? Так и не понял, как автору нужно округлять. | |||
| 26
    
        kobzon 20.03.14✎ 14:31 | 
        (25) Это стандартное округление в 1с. Видимо не подошло.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |