Fixnums and Bignums

Object สำหรับเลขจำนวนเต็มใน ruby มีสองตัวคือ Fixnums และ Bignum สำหรับตัวแปลที่มีจุดทศนิยมเช่น 7.5, 3.14.159 หรือ 10.0 จะเป็น Float แม้ว่าใน ruby ตัวแปลสามารถเปลี่ยน type ได้ทันที (Dynamic type)

สำหรับการหารจำนวนเต็มสองจำนวน ผลลัพท์ไม่ได้เป็น Float แต่เป็นจำนวนเต็มและไม่ปัดเศษให้ด้วย

6/3 => 2
7/3 => 2
8/3 => 2
9/3 => 3

ตัวแปล Fixnums มีขนาด 31 bits (ลองคำนวนตัวต่ำสุดสูงสุดดูนะครับ) สำหรับ Bignum เราสามารถใส่ค่าได้ไม่จำกัดครับ (ใช้ได้เต็มที่เท่าหน่วยความจำที่ให้ ruby ครับ)

แม้ว่าการหารจำนวนเต็มสองจำนวนจะไม่กลายเป็น float แต่สามารถเปลี่ยน Fixnum -> Bignum หรือ Bignum -> Fixnum ได้

2 => Fixnum
437 => Fixnum
2**437 => Bignum
1234567890 => Bignum
1234567890/1234567890 => is 0, is Fixnum

ใน ruby ไม่มี a++ หรือ a— ให้นะครับ เราจะใช้ +=, -=, *=, /= แทน

a=4
a += 1 # a is now 5
a -= 2 # a is now 3
a *= 4 # a is now 12
a *= 2 # a is now 6
<blockcode lang="ruby">
 
a += 1 มีค่าเท่ากับ a = a+1