صفحة الصنف Rational
في روبي
يمكن تمثيل عدد جذري (rational) كزوج من الأعداد الصحيحة: a / b (b> 0) ، حيث a يمثل البسط، و b يمثل المقام. عدد صحيح a Integer
يساوي العدد الجذري 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)
التابع *
ينفذ عملية الضرب.
التابع **
ينجز عملية الأس.
التابع +
ينفذ عملية الإضافة.
التابع -
ينفذ عملية الطرح.
التابع -
يعيد نفي rat
.
التابع /
ينفذ عملية القسمة.
التابع <=>
يُعيد القيم 1- أو 0 أو 1 بناءً على ما إن كان rational
أصغر من أو يساوي أو أكبر من numeric
.
التابع ==
يُعيد القيمة true
إن كان rat
يساوي object
عدديًا.
التابع abs
يعيد القيمة المطلقة لـ rat
.
التابع ceil
يعيد أصغر عدد من الأعداد الأكبر من أو تساوي rat
وفق دقة ndigits
موضعا عشريًا (القيمة الافتراضية هي 0).
التابع denominator
يعيد المقام (denominator)، ويكون دائمًا موجبًا.
التابع fdiv
ينفّذ عملية القسمة، ويعيد القيمة كعدد عشري (Float
).
التابع floor
يعيد أكبر عدد من الأعداد الأصغر من أو تساوي rat
مع دقة ndigits
منزلًا عشريًا (القيمة الافتراضية هي 0).
التابع inspect
يُعيد العدد كسلسلة نصية.
التابع magnitude
يعيد القيمة المطلقة لـ rat
.
التابع negative?
يعيد true
إن كان rat
أصغر من 0.
التابع numerator
يعيد البسط (numerator).
التابع positive?
يعيد القيمة true
إن كان rat
أكبر من 0.
التابع quo
ينفذ عملية القسمة.
التابع rationalize
يُعيد تقريبًا مبسطًا لقيمة العدد في حال إعطاء الوسيط الاختياري eps
(النتيجة ستحقق المتراجحة)، وبخلاف ذلك سيعيد العدد نفسه.
التابع round
يعيد العدد rat
مُقرّبًا إلى أقرب قيمة مع دقة ndigits
منزلًا عشريًا (القيمة الافتراضية هي 0).
التابع to_f
يُعيد القيمة على هيئة Float
.
التابع to_i
يُعيد القيمة مُقتطعة على هيئة عدد صحيح.
التابع to_r
يعيد الكائن self.
التابع to_s
يُعيد القيمة على هيئة سلسلة نصية.
التابع truncate
يعيد العدد rat
مُقتطعًا (نحو الصفر) بدقة ndigits
منزلًا عشريًا (القيمة الافتراضية هي 0).