32х битных формат с плавающей запятой стандарта IEEE

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Tonyy
Сообщения: 12
Зарегистрирован: 23 май 2010, 10:36

32х битных формат с плавающей запятой стандарта IEEE. число выборок - 1000
я описываю переменную через массив [1..1000] типа single.
считываю в переменную 4000 байт. значение каждой выборки присваиваю отдельной ячейки в таблице StringGrid, приводя тип из вещественного в строковый. выполнение прерывается ошибкой. не правильная операция с вещественным числом. в таблице оказываются данные до 800 с хвостиком выборки. также в таблице встречается слово NAN. помогите распознать ошибку. что такое NAN , надо ли переворачивать биты у вещественных чисел? (я попробовал, но компилятор заругался)
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Проверь чтоб деления на 0 небыло.
NAN = 0.0/0.0 //недопустимое значение
проверить является ли число правильным
if IsNaN(float) then
[syntax=Delphi] [/syntax]
Tonyy
Сообщения: 12
Зарегистрирован: 23 май 2010, 10:36

с какой версии начинает работать IsNAN ? в седьмом делфи не работает. и хотелось узнать по больше про стандарт IEEE простым языком. правильно ли я определил переменную через single?
Tonyy
Сообщения: 12
Зарегистрирован: 23 май 2010, 10:36

разве при чтении данных из файла происходит какое-либо деление?
Tonyy
Сообщения: 12
Зарегистрирован: 23 май 2010, 10:36

почему на функцию isNan компилятор говорит - Undeclared identifier: 'IsNan'??????!!!!!!!!!!!!!
BulldozerBSG
Сообщения: 270
Зарегистрирован: 09 янв 2010, 04:14
Контактная информация:

В Delphi должно быть, вот в FPC (Lazarus) вроде отсутствует
BulldozerBSG
Сообщения: 270
Зарегистрирован: 09 янв 2010, 04:14
Контактная информация:

"double <> 0.0/0.0" такое условие можно попробовать...
Tonyy
Сообщения: 12
Зарегистрирован: 23 май 2010, 10:36

понял в чем ошибка - не был подключен модуль math
Ответить