IT-개발,DB

숫자가 아님 NaN

SB리치퍼슨 2021. 1. 10. 22:26

숫자가 아님 NaN

컴퓨터 연산에서 NaN(Not a Number, not a real number)은 연산 과정에서 잘못된 입력을 받았음을 나타내는 기호이다. ... 예를 들어서, 대부분의 부동소수점 장치는 음수에 대해서 제곱근을 구하려는 연산에 대해서 이것은 불가능(invalid)하다는 메시지와 함께 NaN 값을 반환한다.

 

예를 들면, 0으로 나눈 값

모든 개발언어에서 지원한다. C++, Delphi, Java, Python, C#, VisualBasic, Javascript 등등

// Example code : Assign NAN to a number and then test using IsNaN
var
  float : Double;

begin
  // Set the number to an invalid number
  float := NaN;     // Equivalent to 0.0/0.0

  // Although an invalid number, we can still display it
  ShowMessage('float = '+FloatToStr(float));

  // And we can test to see if it is a valid number
  if IsNaN(float)
  then ShowMessage('float is not a number')
  else ShowMessage('float = '+FloatToStr(float));
end;

출처: WikiPedia

 

참고로 추가로 많이 사용되는 키워드

Nil = Nothing; zero; pointer value to 0. A pointer value that is defined as undetermined

const Nil = Pointer(0);

Null = 정의 되지 않은 값. The Null variable has an undefined value.

var
  Answer : Variant;

begin
  Answer := Divide(4,2);

  // Show the result of this division
  if Answer = Null
  then ShowMessage('4 / 2 = Invalid')
  else ShowMessage('4 / 2 = '+IntToStr(Answer));

  Answer := Divide(4,0);

  // Show the result of this division
  if Answer = Null
  then ShowMessage('4 / 0 = Invalid')
  else ShowMessage('4 / 0 = '+IntToStr(Answer));

end;

function TForm1.Divide(Dividend, Divisor: Integer) : Variant;
begin
  // Try to divide the Dividend by the Divisor
  try
    Result := Dividend div Divisor;
  except
    Result := Null ;    // Assign Null if the division threw an error
  end;
end;

 

반응형