Есть ли способ обнулить, округлить или отбросить все цифры после второго знака после запятой? Стандартная функция округляет до ближайшего целого.
Было 0.95434534534535 , стало 0.95000000000
Умножил на 100, отбросил дробную часть, потом DI_R назад в REAL и поделил на 100.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
s7-315, округлить REAL до двух знаков после запятой
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 30 авг 2014, 17:17
- Имя: Илья О
-
- частый гость
- Сообщения: 441
- Зарегистрирован: 21 июл 2013, 19:32
- Имя: Вадим
- город/регион: Северодвинск
- Благодарил (а): 15 раз
- Поблагодарили: 39 раз
Re: s7-315, округлить REAL до двух знаков после запятой
Умножить на 100, прибавить 5, далее по тексту...jack7277 писал(а): Умножил на 100, отбросил дробную часть, потом DI_R назад в REAL и поделил на 100.
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 30 авг 2014, 17:17
- Имя: Илья О
-
- почётный участник форума
- Сообщения: 3575
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 6 раз
- Поблагодарили: 271 раз
Re: s7-315, округлить REAL до двух знаков после запятой
jack7277 писал(а):Я не понял почему прибавить 5.
Поправлю: надо прибавить 0,5.jack7277 писал(а):Умножил на 100, отбросил дробную часть, потом DI_R назад в REAL и поделил на 100.
Просто отбрасывание дробной части приведет к округлению к меньшему, а не к ближайшему целому. Правильная функция округления не просто:
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