اعداد در روبی

انواع اعداد در روبی (Integer، Float)، عملیات ریاضی و توابع عددی

انواع عدد در روبی

روبی دو نوع عدد اصلی دارد:

۱. عدد صحیح (Integer)

اعداد کامل بدون اعشار — مثبت، منفی یا صفر:

x = 42
y = -17
z = 0

puts x.class  # => Integer

۲. عدد اعشاری (Float)

اعداد با ممیز اعشار:

a = 3.14
b = -0.5
c = 2.0

puts a.class  # => Float

عملیات ریاضی پایه

عملگرناممثالنتیجه
+جمع5 + 38
-تفریق5 - 32
*ضرب5 * 315
/تقسیم7 / 23
%باقی‌مانده7 % 21
**توان2 ** 38
a = 10
b = 3

puts a + b   # 13
puts a - b   # 7
puts a * b   # 30
puts a / b   # 3 (تقسیم صحیح!)
puts a % b   # 1 (باقی‌مانده)
puts a ** b  # 1000 (توان)
در روبی، تقسیم دو عدد صحیح (7 / 2) نتیجه صحیح می‌دهد (3)، نه اعشاری! برای نتیجه اعشاری حداقل یکی باید Float باشد: 7.0 / 2 یا 7.to_f / 2.

تفاوت / صحیح و / اعشاری

puts 7 / 2     # => 3 (صحیح)
puts 7.0 / 2   # => 3.5 (اعشاری)
puts 7 / 2.0   # => 3.5 (اعشاری)
puts 7.to_f / 2 # => 3.5 (اعشاری)

ترتیب عملیات

روبی ترتیب ریاضی استاندارد را رعایت می‌کند:

puts 2 + 3 * 4      # => 14 (اول ضرب)
puts (2 + 3) * 4    # => 20 (اول پرانتز)
puts 2 ** 3 ** 2    # => 512 (راست به چپ: 3^2=9, 2^9=512)

زیرخط در اعداد (Underscore)

برای خوانایی بهتر می‌توانید از _ در اعداد بزرگ استفاده کنید:

population = 85_000_000   # 85 میلیون
puts population           # => 85000000

متدهای مفید عددی

متدتوضیحمثال
absقدر مطلق(-5).abs → 5
even?زوج؟4.even? → true
odd?فرد؟3.odd? → true
between?بین دو عدد؟5.between?(1, 10) → true
floorگرد به پایین3.9.floor → 3
ceilگرد به بالا3.1.ceil → 4
roundگرد کردن3.7.round → 4
timesتکرار3.times { puts "Hi" }

ماژول Math

برای عملیات ریاضی پیشرفته، از ماژول Math استفاده کنید:

puts Math::PI           # => 3.141592...
puts Math.sqrt(16)      # => 4.0 (جذر)
puts Math.cbrt(27)      # => 3.0 (جذر سوم)
puts Math.pow(2, 10)    # => 1024.0
puts Math.log(100)      # => 4.605... (لگاریتم طبیعی)
puts Math.log10(100)    # => 2.0

اعداد تصادفی

با متد rand می‌توانید عدد تصادفی تولید کنید:

puts rand(100)    # عدد صحیح بین ۰ تا ۹۹
puts rand(1..10)  # عدد صحیح بین ۱ تا ۱۰
puts rand         # عدد اعشاری بین ۰ تا ۱

تبدیل نوع عدد

# Integer به Float
x = 5.to_f      # 5.0

# Float به Integer
y = 3.99.to_i   # 3 (بخش اعشار حذف می‌شود)

# رشته به عدد
z = "42".to_i   # 42
w = "3.14".to_f # 3.14
هنگام تبدیل Float به Integer با to_i، بخش اعشار گرد نمی‌شود، بلکه حذف می‌شود! 3.99.to_i می‌شود 3 نه 4.

خلاصه

این مبحث بخشی از دوره آموزش کامل روبی است.

ابزارهای مرتبط