الفرق بين المراجعتين لصفحة: «Ruby/Float/prev float»

من موسوعة حسوب
< Ruby‏ | Float
إنشاء الصفحة.
 
لا ملخص تعديل
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Float]]
[[تصنيف: Ruby Float]]
يعيد التابع <code>prev_float</code> العدد السابق على العدد الذي استُدعي معه. أي يعيد القيمة <code>int-1</code>.
يعيد التابع <code>prev_float</code> العدد العشري الذي يسبق العدد العشري الذي استُدعي معه.
 
يعيد استدعاء التابع <code>prev_float</code> مع القيمة <code>(‎(-Float::MAX</code> والقيمة <code>(Float::INFINITY-)</code> القيمة الثابتة ‎<code>-Float::INFINITY</code>. ويعيد استدعاء التابع بالشكل <code>Float::NAN.prev_float</code> القيمة <code>Float::NAN</code>.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">pred  integer‎</syntaxhighlight>
<syntaxhighlight lang="ruby">prev_float float</syntaxhighlight>
==القيمة المعادة==
==القيمة المعادة==
يعاد العدد السابق على العدد الذي استُدعي معه.
يعاد العدد العشري السابق للعدد العشري المعطى.
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>pred‎</code>:
مثال على استخدام التابع <code>prev_float</code>:
<syntaxhighlight lang="ruby">1.pred      #=> 0
<syntaxhighlight lang="ruby">0.01.prev_float    #=> 0.009999999999999998
(-1).pred   #=> -2
1.0.prev_float    #=> 0.9999999999999999
</syntaxhighlight>
100.0.prev_float  #=> 99.99999999999999
 
0.01 - 0.01.prev_float    #=> 1.734723475976807e-18
1.0 - 1.0.prev_float      #=> 1.1102230246251565e-16
100.0 - 100.0.prev_float   #=> 1.4210854715202004e-14
 
f = 0.01; 20.times { printf "%-20a %s\n", f, f.to_s; f = f.prev_float }
#=> 0x1.47ae147ae147bp-7 0.01
#  0x1.47ae147ae147ap-7 0.009999999999999998
#  0x1.47ae147ae1479p-7 0.009999999999999997
#  0x1.47ae147ae1478p-7 0.009999999999999995
#  0x1.47ae147ae1477p-7 0.009999999999999993
#  0x1.47ae147ae1476p-7 0.009999999999999992
#  0x1.47ae147ae1475p-7 0.00999999999999999
#  0x1.47ae147ae1474p-7 0.009999999999999988
#  0x1.47ae147ae1473p-7 0.009999999999999986
#  0x1.47ae147ae1472p-7 0.009999999999999985
#  0x1.47ae147ae1471p-7 0.009999999999999983
#  0x1.47ae147ae147p-7  0.009999999999999981
#  0x1.47ae147ae146fp-7 0.00999999999999998
#  0x1.47ae147ae146ep-7 0.009999999999999978
#  0x1.47ae147ae146dp-7 0.009999999999999976
#  0x1.47ae147ae146cp-7 0.009999999999999974
#  0x1.47ae147ae146bp-7 0.009999999999999972
#  0x1.47ae147ae146ap-7 0.00999999999999997
#  0x1.47ae147ae1469p-7 0.009999999999999969
#  0x1.47ae147ae1468p-7 0.009999999999999967</syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Float/next|next]]</code>: يعيد العدد الموالي للعدد الذي استُدعي معه.
* التابع <code>[[Ruby/Float/next float|next_float]]</code>: يعيد العدد العشري الذي يلي العدد العشري الذي استُدعي معه.


==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Integer.html#method-i-pred قسم التابع pred‎ في الصنف Float في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Float.html#method-i-prev_float قسم التابع pred‎ في الصنف Float في توثيق روبي الرسمي.]

مراجعة 07:26، 24 نوفمبر 2018

يعيد التابع prev_float العدد العشري الذي يسبق العدد العشري الذي استُدعي معه.

يعيد استدعاء التابع prev_float مع القيمة (‎(-Float::MAX والقيمة (Float::INFINITY-) القيمة الثابتة ‎-Float::INFINITY. ويعيد استدعاء التابع بالشكل Float::NAN.prev_float القيمة Float::NAN.

البنية العامة

prev_float  float

القيمة المعادة

يعاد العدد العشري السابق للعدد العشري المعطى.

أمثلة

مثال على استخدام التابع prev_float:

0.01.prev_float    #=> 0.009999999999999998
1.0.prev_float     #=> 0.9999999999999999
100.0.prev_float   #=> 99.99999999999999

0.01 - 0.01.prev_float     #=> 1.734723475976807e-18
1.0 - 1.0.prev_float       #=> 1.1102230246251565e-16
100.0 - 100.0.prev_float   #=> 1.4210854715202004e-14

f = 0.01; 20.times { printf "%-20a %s\n", f, f.to_s; f = f.prev_float }
#=> 0x1.47ae147ae147bp-7 0.01
#   0x1.47ae147ae147ap-7 0.009999999999999998
#   0x1.47ae147ae1479p-7 0.009999999999999997
#   0x1.47ae147ae1478p-7 0.009999999999999995
#   0x1.47ae147ae1477p-7 0.009999999999999993
#   0x1.47ae147ae1476p-7 0.009999999999999992
#   0x1.47ae147ae1475p-7 0.00999999999999999
#   0x1.47ae147ae1474p-7 0.009999999999999988
#   0x1.47ae147ae1473p-7 0.009999999999999986
#   0x1.47ae147ae1472p-7 0.009999999999999985
#   0x1.47ae147ae1471p-7 0.009999999999999983
#   0x1.47ae147ae147p-7  0.009999999999999981
#   0x1.47ae147ae146fp-7 0.00999999999999998
#   0x1.47ae147ae146ep-7 0.009999999999999978
#   0x1.47ae147ae146dp-7 0.009999999999999976
#   0x1.47ae147ae146cp-7 0.009999999999999974
#   0x1.47ae147ae146bp-7 0.009999999999999972
#   0x1.47ae147ae146ap-7 0.00999999999999997
#   0x1.47ae147ae1469p-7 0.009999999999999969
#   0x1.47ae147ae1468p-7 0.009999999999999967

انظر أيضا

  • التابع next_float: يعيد العدد العشري الذي يلي العدد العشري الذي استُدعي معه.

مصادر