Округление всегда в меньшую сторону кратно 0,5

1. HaIIpuKoJIe 20.01.22 16:01 Сейчас в теме
Добрый день. Подскажите пожалуйста как реализовать функцию округления всегда в меньшую сторону кратно 0,5.
Например
Число 2 = 2
Число 1,9 = 1,5
Число 1,5 = 1,5
Число 1,1 = 1
По теме из базы знаний
Найденные решения
2. SlavaKron 20.01.22 16:14 Сейчас в теме
Умножить на 2, взять целое, разделить на 2.
AnryMc; HaIIpuKoJIe; nomad_irk; user1619761; +4 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. nomad_irk 81 20.01.22 16:23 Сейчас в теме
(3) Для
Число 1,1 = 1

работать не будет, а вот вариант из (2) - будет.
HaIIpuKoJIe; +1 Ответить 4
6. user1619761 20.01.22 16:32 Сейчас в теме
(5) Вот так работает вроде, по крайней мере для 1.1 точно
Число1 = 1.1;
     Число2 = Окр((Число1-0.6), 2);
     Число3 = Цел(Число2) + 0.5;
    
    Если Число3 > Число2 Тогда
        
        Число2 = Число2+(Число3-Число2);
        
    Иначе
        
        Число2 = Число3+Число2;
        
    КонецЕсли;
Показать
8. nomad_irk 81 20.01.22 16:33 Сейчас в теме
(6)возможно, не проверял логику, т.к. в (2) решение намного изящнее.
user1619761; +1 Ответить
9. user1619761 20.01.22 16:34 Сейчас в теме
(8) тут полностью согласен =)
7. user1619761 20.01.22 16:33 Сейчас в теме
(5) но вариант который предложили в (2) компактнее.
14. ishelper 21.01.22 22:53 Сейчас в теме
(13)
Умножить на 10, разделить на 5 и взять целое. На первый взгляд разницы не видно, но ...
...но она есть! И разница эта не в вашу пользу, смотрим ТЗ:
(1)
Число 1,9 = 1,5

1,9 * 10 = 19
19 / 5 = 3,8
Цел(3,8) = сколько, ась?

Интересно, долго еще будет продолжаться это изобретение велосипеда с треугольными колесами?
2. SlavaKron 20.01.22 16:14 Сейчас в теме
Умножить на 2, взять целое, разделить на 2.
AnryMc; HaIIpuKoJIe; nomad_irk; user1619761; +4 Ответить 3
3. HaIIpuKoJIe 20.01.22 16:15 Сейчас в теме
(2)Спасибо за ответ. Либо взять целое + 0,5 думаю тоже должно работать.
10. AnryMc 849 20.01.22 16:55 Сейчас в теме
(2) У ildarovich появился конкурент по красивым решениям?
13. gybson 21.01.22 22:16 Сейчас в теме
(2)Умножить на 10, разделить на 5 и взять целое. На первый взгляд разницы не видно, но ...
4. user1619761 20.01.22 16:23 Сейчас в теме
 Число1 = 5;
     Число2 = Окр((Число1-0.6), 2);
     Число3 = Цел(Число2) + 0.5;
    
    Если Число3 > Число2 Тогда
        
        Число2 = Число2+(Число3-Число2);
        
    КонецЕсли;

Показать
11. Ravil_ 21.01.22 08:39 Сейчас в теме
разделить на 0.5, взять целое и умножить на 0.5
12. ishelper 21.01.22 11:30 Сейчас в теме
(11)
разделить на 0.5
Дааа, это совсем не то, что предложенное выше "умножить на 2" - намного точнее!
умножить на 0.5
И это принципиально отличается от "разделить на 2" - гораздо, гораздо лучше! :-P
user1326147; +1 Ответить
15. Ravil_ 24.01.22 08:11 Сейчас в теме
(12) видишь суслика? и я нет
16. ishelper 24.01.22 13:03 Сейчас в теме
(15)
видишь суслика? и я нет
Если "суслик"- это смысл, то таки да - не вижу!
17. Ravil_ 24.01.22 14:26 Сейчас в теме
(16) я не понял логику в умножении на 2, взятие целого и деления на 2. Потом продумал свою, и написал, не делая мысленных преобразований, она хоть и не такая красивая, но для меня более понятная
Оставьте свое сообщение

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