Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Общие вопросы / Common questions » Значение "-0.0"

   
Автор / Author Тема / Topic: Значение "-0.0"
Eman1982
Forum Member / Участник форума
Участник № / Member № 5619


Icon 1 отправлено / posted      Профиль для / Profile for Eman1982           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Обнаружил забавный баг:
Есть канал float. Привязываю его к ГЭ "Текст" с отображением "%0.1f".

Ввожу канал.In= -0.01
ГЭ "Текст" показывает значение "-0.0".
Согласитесь, несколько странно видеть на экране значение
-0.0 град цельсия.
Как можно исправить эту ситуацию?

Сообщения / Posts 45 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
KAV
Forum Haunter / Завсегдатай форума
Участник № / Member № 2889


Icon 1 отправлено / posted      Профиль для / Profile for KAV           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
а что отрицательных температур не бывает?

если вы хотели отобразить -0.01 то маску введите %0.2f.

Сообщения / Posts 126 | Из / From: Россия РТ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Eman1982
Forum Member / Участник форума
Участник № / Member № 5619


Icon 1 отправлено / posted      Профиль для / Profile for Eman1982           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Не бывает значения -0. Бывает просто 0.
Я хочу, чтобы округляло до 1 знака после запятой, но значения после округления были бы корректными.
Значение -0 или -0.0 или -0.000 корректным быть не может.

Сообщения / Posts 45 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Жигалов Денис Николаевич
Forum Haunter / Завсегдатай форума
Участник № / Member № 6035


Icon 1 отправлено / posted      Профиль для / Profile for Жигалов Денис Николаевич           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Напишите программную обработку да и все. Которая будет из -0,0 на экране делать 0.
Сообщения / Posts 112 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Eman1982
Forum Member / Участник форума
Участник № / Member № 5619


Icon 1 отправлено / posted      Профиль для / Profile for Eman1982           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Ну, это понятно. Но почему пишет -0? Почему за 10 лет работы в других средах я никогда не видел значения -0? Баг это или не баг? Будут его убирать в следующих версиях, или объяснят, что так и надо, так все и задумано?
Сообщения / Posts 45 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Жигалов Денис Николаевич
Forum Haunter / Завсегдатай форума
Участник № / Member № 6035


Icon 1 отправлено / posted      Профиль для / Profile for Жигалов Денис Николаевич           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Это не баг. Вы выводите на экран одну цифру после запятой. Вам экран и показывает. Что попросили как говорится то он вам и сделал. Если посмотреть в канал то там будет все в порядке. То есть входное будет -0.01 и реальное -0.01. Вот это не является функцией округления это формат представления данных %0.1f.
Сообщения / Posts 112 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Eman1982
Forum Member / Участник форума
Участник № / Member № 5619


Icon 1 отправлено / posted      Профиль для / Profile for Eman1982           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Денис, когда вас в школе учительница просила округлить -0,01 до целого, вы давали ответ -0?
Сообщения / Posts 45 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Жигалов Денис Николаевич
Forum Haunter / Завсегдатай форума
Участник № / Member № 6035


Icon 1 отправлено / posted      Профиль для / Profile for Жигалов Денис Николаевич           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Вы не чего не округляете. Вы просто выводите в чистом виде. Если вы хотите видеть округленное. То нужно его с начала округлить. Вы говорите экрану покажи мне одно значение после запятой %0.1f от всего числа которое находится в аргументе канала. Он вам и показывает что вы его попросили.
Сообщения / Posts 112 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
KAV
Forum Haunter / Завсегдатай форума
Участник № / Member № 2889


Icon 1 отправлено / posted      Профиль для / Profile for KAV           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
на самом деле сделайте программную проверку, если ..... = -0,0 то 0.0 ну или в диапазоне контролируйте
Сообщения / Posts 126 | Из / From: Россия РТ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Eman1982
Forum Member / Участник форума
Участник № / Member № 5619


Icon 1 отправлено / posted      Профиль для / Profile for Eman1982           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Реальное значение канала действительно не округляется. Но значение округляется для представления на ГЭ.
Провожу опыт:

канал.In= -0.04
Значение На ГЭ: -0.0

канал.In= -0.05
Значение На ГЭ: -0.1

Как видим, при отображении округляет до ближайшего.

По поводу программной обработки:
Да, можно это сделать так или иначе. Придется что-то такое выдумывать.
Жаль только, что нельзя из прошлого убрать минуту позора, когда при аттестации измерительных каналов на предприятии моя программа выдала значение -0.0 градусов.

Сообщения / Posts 45 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
KAV
Forum Haunter / Завсегдатай форума
Участник № / Member № 2889


Icon 1 отправлено / posted      Профиль для / Profile for KAV           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
с последним согласен
Сообщения / Posts 126 | Из / From: Россия РТ  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Жигалов Денис Николаевич
Forum Haunter / Завсегдатай форума
Участник № / Member № 6035


Icon 1 отправлено / posted      Профиль для / Profile for Жигалов Денис Николаевич           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Чет раньше не додумался так проверить. Тогда видимо действительно баг.
Сообщения / Posts 112 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Используется стандартный формат Си вывода чисел. В этом формате отображение всегда наследует знак исходного числа (даже при округлении).
Сообщения / Posts 17317 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Eman1982
Forum Member / Участник форума
Участник № / Member № 5619


Icon 1 отправлено / posted      Профиль для / Profile for Eman1982           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Я проверял подобную процедуру на С++. Ничего похожего не происходит. Можете проверить.
Сообщения / Posts 45 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Жигалов Денис Николаевич
Forum Haunter / Завсегдатай форума
Участник № / Member № 6035


Icon 1 отправлено / posted      Профиль для / Profile for Жигалов Денис Николаевич           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Ну судя из ответа поддержки. процедура языка С++ не использует стандартный формат вывода чисел системы Си. Видимо С++ использует что то другое.
Сообщения / Posts 112 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Eman1982
Forum Member / Участник форума
Участник № / Member № 5619


Icon 1 отправлено / posted      Профиль для / Profile for Eman1982           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Денис, вынужден признать что да, проверка осуществленная мною в BC++ Builder 5 была выполнена не совсем корректно.

Перепроверил я на старом досовском Borland C++ 3.0 вывод на экран:

printf("%.1f",-0.01);

Выводит -0.0

Так что в данном случае здесь грехи Си.

Сообщения / Posts 45 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Жигалов Денис Николаевич
Forum Haunter / Завсегдатай форума
Участник № / Member № 6035


Icon 1 отправлено / posted      Профиль для / Profile for Жигалов Денис Николаевич           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Как исправить Чет маялся маялся не как не получается. И на ST писал. Не реагирует вообще. Если делать без обработки канала.
Тоесть IN[002] пытаюсь в R[000]. Если IN = таму, дай нам чемы хотим в R

Сообщения / Posts 112 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Eman1982
Forum Member / Участник форума
Участник № / Member № 5619


Icon 1 отправлено / posted      Профиль для / Profile for Eman1982           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В РП Том1, стр. 174 написано, что можно использовать "трансляцию", т.е. вызов каналом программы для преобразования его атрибутов. Но пока у меня тоже не получается.
Сообщения / Posts 45 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Жигалов Денис Николаевич
Forum Haunter / Завсегдатай форума
Участник № / Member № 6035


Icon 1 отправлено / posted      Профиль для / Profile for Жигалов Денис Николаевич           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Если как не то получится напишите если не сложно. А то у меня тоже давление в -0,0.
Сообщения / Posts 112 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Eman1982
Forum Member / Участник форума
Участник № / Member № 5619


Icon 1 отправлено / posted      Профиль для / Profile for Eman1982           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Денис, у меня получилось решить проблему довольно изящно через трансляцию. Дайте мейл- кину вам.
Сообщения / Posts 45 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Жигалов Денис Николаевич
Forum Haunter / Завсегдатай форума
Участник № / Member № 6035


Icon 1 отправлено / posted      Профиль для / Profile for Жигалов Денис Николаевич           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
xxxxxxx@yyyyyy
Заранее спасибо.

[ 10.06.2013, 08:15: Сообщение отредактировал / Message edited by AdAstra Technical Support ]

Сообщения / Posts 112 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Eman1982
Forum Member / Участник форума
Участник № / Member № 5619


Icon 1 отправлено / posted      Профиль для / Profile for Eman1982           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
отправил
Сообщения / Posts 45 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Жигалов Денис Николаевич
Forum Haunter / Завсегдатай форума
Участник № / Member № 6035


Icon 1 отправлено / posted      Профиль для / Profile for Жигалов Денис Николаевич           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо. Получил.
Сообщения / Posts 112 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2