Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.23;
Скачать: CL | DM;

Вниз

Variant Conversion   Найти похожие ветки 

 
TTCustomDelphiMaster ©   (2003-01-12 16:08) [0]

В результате определенных операций в значение переменной типа Variant получается равным -NAN (хотя должно быть null или в крайнем случае 0). Как определить что значение переменной равно NAN?

if Val = ?? then

ЗЫ: DBGrid каким то образом в этой ячейке пишет NAN. Я пытаюсь вывести текст на TField.OnGetText и получаю ошибку Invalid floating point operation.


 
Набережных С.   (2003-01-12 17:29) [1]

if IsNan(Val) then "Yes" else "No"


 
TTCustomDelphiMaster ©   (2003-01-12 17:48) [2]

Что то не нашел такой функции в D5.


 
Anatoly Podgoretsky ©   (2003-01-12 18:04) [3]

Ты наверно пытаешься преобразовать, то что числом не является, например NULL


 
Набережных С.   (2003-01-12 18:10) [4]

А при чем здесь D5? Это из D7, модуль math.

function IsNan(const AValue: Single): Boolean;
begin
Result := ((PLongWord(@AValue)^ and $7F800000) = $7F800000) and
((PLongWord(@AValue)^ and $007FFFFF) <> $00000000);
end;

function IsNan(const AValue: Double): Boolean;
begin
Result := ((PInt64(@AValue)^ and $7FF0000000000000) = $7FF0000000000000) and
((PInt64(@AValue)^ and $000FFFFFFFFFFFFF) <> $0000000000000000);
end;

function IsNan(const AValue: Extended): Boolean;
type
TExtented = packed record
Mantissa: Int64;
Exponent: Word;
end;
PExtended = ^TExtented;
begin
Result := ((PExtended(@AValue)^.Exponent and $7FFF) = $7FFF) and
((PExtended(@AValue)^.Mantissa and $7FFFFFFFFFFFFFFF) <> 0);
end;


 
Yuri-7 ©   (2003-01-12 18:12) [5]

Попробуй использовать FloatToStrF(Val,....). По Help, она возвращает строку NAN.


 
Tux   (2003-01-12 18:21) [6]

Речь идет о COM VARIANT? Если да, сперва можно посмотреть поле vt структуры (дифференцировать VT_NULL, VT_EMPTY и пр.)


 
TTCustomDelphiMaster ©   (2003-01-12 18:27) [7]

Всем спасибо.

В таблице у поля тапа Currency Default Value бало равно 0.00 Убрал - ошибка исчезла.



Страницы: 1 вся ветка

Текущий архив: 2003.01.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
7-72565
Sura+
2002-11-11 14:18
2003.01.23
Как програмно убрать восстановить кнопку


1-72301
Gammon
2003-01-13 11:15
2003.01.23
Создание своих компонентов на основе RXLib


1-72330
DeMoN-777
2003-01-12 08:08
2003.01.23
Как создать папку с атрибутом


7-72545
DimaK
2002-11-11 00:14
2003.01.23
Помогите разобраться с изменением разрешения экрана


3-72111
Mike_hex
2002-12-30 10:29
2003.01.23
Связи таблиц в Delphi 5