Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 21

Тема: Округление вещественного числа

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для sertol64
    Регистрация
    06.12.2017
    Адрес
    Подмосковье, не очень близкое
    Сообщений
    378

    По умолчанию Округление вещественного числа

    Доброго дня! Уважаемые Волшебники, всю голову сломал как округлить вещественное число до десятой доли. А именно есть таблица, что к температуре 16,0грд соответствует некий коэффициент, а к температуре 16,5 соответствует другой коэффициент. И так далее с прибавлением 0,5 вплоть до 30грд. Но на аналоговый вход от датчика приходит и 16,1 и 16,2 и 16,3 и 16,4 и т.д. Как умудриться, чтоб если уж 16,1(16,2) соответствовало 16,0 а 16,3(16,4)соответствовало16,5. В базе есть макрос floor(по-моему) но он округляет до целого числа в меньшую сторону. МоЖ у кого есть какие решения?!

  2. #2

    По умолчанию

    Цитата Сообщение от sertol64 Посмотреть сообщение
    Доброго дня! Уважаемые Волшебники, всю голову сломал как округлить вещественное число до десятой доли. А именно есть таблица, что к температуре 16,0грд соответствует некий коэффициент, а к температуре 16,5 соответствует другой коэффициент. И так далее с прибавлением 0,5 вплоть до 30грд. Но на аналоговый вход от датчика приходит и 16,1 и 16,2 и 16,3 и 16,4 и т.д. Как умудриться, чтоб если уж 16,1(16,2) соответствовало 16,0 а 16,3(16,4)соответствовало16,5. В базе есть макрос floor(по-моему) но он округляет до целого числа в меньшую сторону. МоЖ у кого есть какие решения?!
    Да, этот именно к "полу" округляет, нужен был для одного проекта, по Вашей теме макрос недавно попадался, сейчас поищу тему.

    Вот https://owen.ru/forum/attachment.php...7&d=1592163043 картинка, а где-то тут наверное, сам макрос https://owen.ru/forum/attachment.php...6&d=1590401339
    С уважением, Ревака Юрий.
    Инженер группы технической поддержки компании "ОВЕН"
    e-mail: yu.revaka@owen.ru

    Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
    Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
    Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ

  3. #3
    Пользователь Аватар для sertol64
    Регистрация
    06.12.2017
    Адрес
    Подмосковье, не очень близкое
    Сообщений
    378

    По умолчанию

    Воооо! Вот ОНО! Всё дело в этом таинственном макросе DIV05_1. Проблема решена. Спасибо всем!!! Будем дальше "ваять"!

  4. #4
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от sertol64 Посмотреть сообщение
    Воооо! Вот ОНО! Всё дело в этом таинственном макросе DIV05_1. Проблема решена. Спасибо всем!!! Будем дальше "ваять"!
    Это деление целых чисел с округление результата, а не с отбрасыванием дробной части результата
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #5
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,242

    По умолчанию

    Цитата Сообщение от sertol64 Посмотреть сообщение
    Доброго дня! Уважаемые Волшебники, всю голову сломал как округлить вещественное число до десятой доли. А именно есть таблица, что к температуре 16,0грд соответствует некий коэффициент, а к температуре 16,5 соответствует другой коэффициент. И так далее с прибавлением 0,5 вплоть до 30грд. Но на аналоговый вход от датчика приходит и 16,1 и 16,2 и 16,3 и 16,4 и т.д. Как умудриться, чтоб если уж 16,1(16,2) соответствовало 16,0 а 16,3(16,4)соответствовало16,5. В базе есть макрос floor(по-моему) но он округляет до целого числа в меньшую сторону. МоЖ у кого есть какие решения?!
    Очень интересно и как такое округление следует правильно называть? Есть округление до целых, до десятых, до сотых, до тысячных долей, это наверно называется до "полуцелых" или до 1/2?
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  6. #6

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    Очень интересно и как такое округление следует правильно называть? Есть округление до целых, до десятых, до сотых, до тысячных долей, это наверно называется до "полуцелых" или до 1/2?
    Наверное, дискретизация.

  7. #7

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    Очень интересно и как такое округление следует правильно называть? Есть округление до целых, до десятых, до сотых, до тысячных долей, это наверно называется до "полуцелых" или до 1/2?
    Математическое округление.
    Можно сделать быстро, но плохо, а можно — медленно, но хорошо. Через некоторое время все забудут, что было быстро, но будут помнить, что было плохо. И наоборот.
    Королёв Сергей Павлович

    Верно определяйте слова, и вы освободите мир от половины недоразумений.
    Рене Декарт

  8. #8
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,669

    По умолчанию

    Есть правила округления и их несколько, можете найти в Вики, там еще проверяется четность и нечетность следующего знака, до которого хотите округлять и значение уже округленное может быть 3,25 или 3,26 в зависимости от следующего знака.
    з.ы. я когда-то выкладывал макросы, один из которых работал по этому правилу округления.

    з.ы. 16.3 никогда не может стать 16.5, а вот 16.4 в некоторых случаях может. Других правил вроде не существует, если конечно сами не напишите
    Последний раз редактировалось melky; 19.06.2020 в 20:34.

  9. #9
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,251

    По умолчанию

    Вики тута не библия. Причем тут каких-то "знаков" в применении к правилам округления ? 16.3 может стать чем угодно по всем правилам округления.
    Не надо частные случаи выдавать за абсолют

    Я еще и неполное определение округления привел - линейность/нелинейность и и точку отсчета кванта пропустил.
    А то что Вы приводите - линейная дискретизация по степени десятки с точкой отсчета 0.
    Сама по себе вещественное число уже округлено в форме хранения по "нелинейная дискретизация по степени 2 с точкой отсчета 0". Причем это все пока в узких рамках числовой прямой рассматриваем ))

  10. #10
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,669

    По умолчанию

    какие частные случаи ? в математике есть правила округления, вот например https://ibrain.kz/matematika/pravila-okrugleniya
    Вот один из макросов я и делал кажется по правилу 3.

    а так, можно округлять как самому захочется, вот как автор написал - 16.1, 16.2 = 16, а 16.3, 16.4 = 16.5
    Никто же не запрещает в принципе
    Последний раз редактировалось melky; 21.06.2020 в 19:35.

Страница 1 из 3 123 ПоследняяПоследняя

Похожие темы

  1. Детектор изменения числа
    от ИльяИлья в разделе ПЛК1хх [М02]
    Ответов: 1
    Последнее сообщение: 13.12.2019, 11:57
  2. Дробные числа
    от Алмаз Нафиков в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 06.03.2019, 22:03
  3. Вещественные числа
    от The-Boss в разделе Master SCADA 3
    Ответов: 5
    Последнее сообщение: 27.11.2015, 16:47
  4. Округление значения в СП270
    от Valentin. в разделе Панели оператора (HMI)
    Ответов: 3
    Последнее сообщение: 28.04.2014, 09:18
  5. Вещественные числа
    от Александр86 в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 21.02.2013, 16:34

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •