Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Переменная WORD - особенности преобразования типов.  (Прочитано 2849 раз)

pan2000

  • Постоялец
  • ***
  • Сообщений: 210
    • Просмотр профиля
Переменная типа WORD преобразуется в вещественные типы как число со знаком:

Код
var
  x: word;
  y: double;
begin                                      // Пример для x = 40000
  x := TM_Text(Sender).Variable.Value;
  Field2.Text := IntToStr(x);              // Field2.Text = '40000'

  y := x;
  Field3.Text := FloatToStr(y);            // Field3.Text = '-25536.00'

  y := TM_Text(Sender).Variable.Value;
  Field4.Text := FloatToStr(y);            // Field4.Text = '40000.00'
end.       
« Изменён: 09 Августа 2017, 21:22:14 от Simple_Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3160
    • Просмотр профиля
    • Simple-Scada
Здравствуйте. Спасибо за пример проекта. В ближайшее время займемся этой проблемой. Сейчас как грубое решение можно предложить явное приведение к типу Integer, например:

Код
var
  x: word;
  y: double;
begin                                      // Пример для x = 40000
  x := TM_Text(Sender).Variable.Value;
  Field2.Text := IntToStr(x);              // Field2.Text = '40000'

  y := integer(x);
  Field3.Text := FloatToStr(y);            // Field3.Text = '-25536.00'

  y := TM_Text(Sender).Variable.Value;
  Field4.Text := FloatToStr(y);            // Field4.Text = '40000.00'
end.