صفحة الصنف Rational
في روبي
يمكن تمثيل عدد جذري (rational) كزوج من الأعداد الصحيحة: a / b حيث (b> 0). العدد a يمثل البسط، والعدد b يمثل المقام. من الناحية الرياضية، العدد الصحيح a يساوي العدد الجذري a / 1.
في روبي، يمكنك إنشاء الكائنات (الأعداد) الجذرية باستخدام التوابع Kernel#Rational
أو to_r
أو rationalize
، أو عن طريق إضافة r
إلى رقم. ستكون القيم المعادة كسورًا غير قابلة للاختزال (irreducible fractions).
Rational(1) #=> (1/1)
Rational(2, 3) #=> (2/3)
Rational(4, -6) #=> (-2/3)
3.to_r #=> (3/1)
2/3r #=> (2/3)
يمكنك أيضًا إنشاء الكائنات الجذرية من الأعدد العشرية (floating-point numbers) أو من السلاسل النصية.
Rational(0.3) #=> (5404319552844595/18014398509481984)
Rational('0.3') #=> (3/10)
Rational('2/3') #=> (2/3)
0.3.to_r #=> (5404319552844595/18014398509481984)
'0.3'.to_r #=> (3/10)
'2/3'.to_r #=> (2/3)
0.3.rationalize #=> (3/10)
الأعداد الجذرية هي أعداد مضبوطة، والتي تساعد على كتابة البرامج بدون أخطاء التقريب.
10.times.inject(0) {|t| t + 0.1 } #=> 0.9999999999999999
10.times.inject(0) {|t| t + Rational('0.1') } #=> (1/1)
لكن عندما يتضمن التعبير قيمة غير مضبوطة (قيمة عددية أو عملية)، فسينتج نتيجة غير مضبوطة.
Rational(10) / 3 #=> (10/3)
Rational(10) / 3.0 #=> 3.3333333333333335
Rational(-8) ** Rational(1, 3)
#=> (1.0000000000000002+1.7320508075688772i)
توابع الصنف العامة (Public Class Methods)
التابع *
ينفذ عملية الضرب.
التابع **
ينجز عملية الأس.
التابع +
ينفذ عملية الإضافة.
التابع -
ينفذ عملية الطرح.
التابع -
يعيد نفي العدد.
التابع /
ينفذ عملية القسمة.
التابع <=>
معامل المقارنة.
التابع ==
معامل التساوي.
التابع abs
يعيد القيمة المطلقة للعدد.
التابع ceil
يعيد أصغر عدد من الأعداد الأكبر من أو تساوي العدد.
التابع denominator
يعيد المقام (denominator)، ويكون دائمًا موجبًا.
التابع fdiv
ينفّذ عملية القسمة، ويعيد القيمة كعدد عشري (Float
).
التابع floor
يعيد أكبر عدد من الأعداد الأصغر من أو تساوي العدد.
التابع inspect
يُعيد العدد كسلسلة نصية.
التابع magnitude
يعيد القيمة المطلقة للعدد.
التابع negative?
يعيد true
إن كان العدد أصغر من 0.
التابع numerator
يعيد البسط (numerator).
التابع positive?
يعيد القيمة true
إن كان العدد أكبر من 0.
التابع quo
ينفذ عملية القسمة.
التابع rationalize
يُعيد تقريبًا مبسطًا لقيمة العدد.
التابع round
يعيد العدد مُقرّبًا إلى أقرب قيمة مع دقة ndigits
منزلًا عشريًا.
التابع to_f
يُعيد القيمة على هيئة Float
.
التابع to_i
يُعيد القيمة مُقتطعة على هيئة عدد صحيح.
التابع to_r
يعيد العدد نفسه.
التابع to_s
يُعيد القيمة على هيئة سلسلة نصية.
التابع truncate
يعيد العدد مُقتطعًا (نحو الصفر) بدقة ndigits
منزلًا عشريًا.