2013-08-27 2 views
4

나는Infinity와 NaN의 유형은 무엇입니까?

n = 9.0/0 #=> Infinity 
n.class #=> Float 

m = 0/0.0 #=> NaN 
m.class #=> Float 

에 의해 InfinityNaN을 얻을 수 있지만 내가 원하는 때에 액세스 할 Infinity 직접 NaN :

Infinity #=> uninitialized constant Infinity (NameError) 
NaN #=> uninitialized constant NaN (NameError) 

InfinityNaN 무엇입니까? 그것들은 사물, 키워드 또는 다른 것입니까?

답변

5

당신이 Infinity로 인쇄를 참조하고 NaNFloat 클래스의 두 가지 특별한 경우에 딱 문자열 표현은 무엇을 참조를, 키워드 또는 리터럴이 아닙니다. 부동 소수점 나누기는 0으로 계산되거나 Float::INFINITYFloat::NAN을 참조하여 반환됩니다.

Float::INFINITY.class 
# => Float 
Float::INFINITY.to_s 
# => "Infinity" 

Float::NAN.class 
# => Float 
Float::NAN.to_s 
# => "NaN" 
+1

Float :: INFINITY는 일반적으로 무한대를 나타 내기 위해 사용됩니다. 'loop.size' 또한 그것을 반환합니다. – Stefan

+0

나는 다른 것을 물어보기로되어 있었지만, 나는 다른 것을 물었다. 나는 내 질문으로 돌아올 것이다. 나는 당신이 당신의 대답에서 놓친 것이 있다고 생각한다. :) –

3

당신이 INF/유모 문자, 사용 추적하려면 다음

>> Float::INFINITY 
=> Infinity 
>> Float::NAN 
=> NaN 

Float constants list