Да, опечатка. Работа с флоат в панели, как я понимаю, через указатели происходит. Насчет тайного смысла "разделить" тоже ничего сложного, - заказчик попросил изменить способ ввода: вместо ввода двух номеров (шкаф и клапан) сделать зараз, через ввод с точкой.
Панели, увы, дома нет, без проверки рабочий код боюсь не напишу, а эксперементировать в цехе на живом производстве некомильфо.
WORD box, valve;
float fValue;
fValue = *(float*)(PSW+380);
box = (int) fValue;
valve = (int) ((fValue - (float)box) * 100);
Это код рабочий (не в смысле алгоритма, а в смысле правил использования языка)?
Вот так, наверное, правильней.
WORD box, valve;
float fValue;
fValue = *(float*)(PSW+380);
box = (int) fValue;
valve = (int) ((fValue - (float)box) * 100 + 0.49);




Ответить с цитированием