1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

s7-315, округлить REAL до двух знаков после запятой

Метрология, КИП и датчики
Ответить

Автор темы
jack7277
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 30 авг 2014, 17:17
Имя: Илья О

s7-315, округлить REAL до двух знаков после запятой

Сообщение jack7277 »

Есть ли способ обнулить, округлить или отбросить все цифры после второго знака после запятой? Стандартная функция округляет до ближайшего целого.

Было 0.95434534534535 , стало 0.95000000000

Умножил на 100, отбросил дробную часть, потом DI_R назад в REAL и поделил на 100.

VaBo
частый гость
частый гость
Сообщения: 441
Зарегистрирован: 21 июл 2013, 19:32
Имя: Вадим
город/регион: Северодвинск
Благодарил (а): 15 раз
Поблагодарили: 39 раз

Re: s7-315, округлить REAL до двух знаков после запятой

Сообщение VaBo »

jack7277 писал(а): Умножил на 100, отбросил дробную часть, потом DI_R назад в REAL и поделил на 100.
Умножить на 100, прибавить 5, далее по тексту...

Автор темы
jack7277
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 30 авг 2014, 17:17
Имя: Илья О

Re: s7-315, округлить REAL до двух знаков после запятой

Сообщение jack7277 »

Я не понял почему прибавить 5.

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3575
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

Re: s7-315, округлить REAL до двух знаков после запятой

Сообщение Михайло »

jack7277 писал(а):Я не понял почему прибавить 5.
jack7277 писал(а):Умножил на 100, отбросил дробную часть, потом DI_R назад в REAL и поделил на 100.
Поправлю: надо прибавить 0,5.
Просто отбрасывание дробной части приведет к округлению к меньшему, а не к ближайшему целому. Правильная функция округления не просто:
INT (x), а INT(x+0,5)

т.е. ROUND(x) = INT(x+0,5)

Например, ROUND(0,9543) = INT (0,9543+0,5) = INT(1,4543) = 1
для сравнения INT (0,9543) = 0
Ответить

Вернуться в «Метрология, КИП и датчики»