2011년 6월 2일 목요일

Standard Types : Numbers

Standard Types

Numbers

루비는 정수와 부동소수점(floating point number)을 지원한다. 정수는 길이에 상관없이 사용 가능하다. 일반적인 범위의 정수(-230~230-1, -262~262-1) 는 내부에서 이진 형태로 저장되고 Fixnum 클래스의 객체가 된다. 이 범위를 벗어나는 좀 더 큰 정수는 Bignum 클래스의 객체로 저장된다. 루비는 양방향의 변환을 자동으로 해준다.

num = 8
7.times do
print num.class, " ", num, "\n"
num *= num
end

>> Fixnum 8
>> Fixnum 64
>> Fixnum 4096
>> Fixnum 16777216
>> Bignum 281474976710656
>> Bignum 79228162514264337593543950336
>> Bignum 6277101735386680763835789423207666416102355444464034512896

정수를 표현할 때 숫자 앞부분에 적당한 부호를 붙일수도 있고 진법을 나타내는 특정 문자를 붙일 수도 있다.
8진수=0, 10진수=기본, 16진수=0x, 2진수=0b 그리고 정수 중간에 쓰인 밑줄은 무시된다.

puts 0xaabb
puts 0377
puts -0b101010

>> 43707
>> 255
>> -42

소 수점이나 지수를 포함하는 숫자 리터럴은 시스템 아키텍처에서는 Double에 해당하는 Float 객체로 변환된다. 소수점의 앞뒤에는 반드시 숫자가 와야 한다. 모든 숫자는 객체이므로 다양한 메시지를 처리할 수 있다. 정수 타입은 몇 가지 유용한 반복자를 지원한다. times, 숫자 사이를 반복하는 upto, downto, step 메서드가 있다.

3.times     { print "X " }
1.upto(5)   { |i| print i, " " }
99.downto(95)  { |i| print i, " " }
50.step(80, 5) { |i| print i, " " }

>> X X X 1 2 3 4 5 99 98 97 96 95 50 55 60 65 70 75 80

문자열을 숫자로 변환할 경우 Integer 클래스를 사용한다.

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...