الانتقال إلى المحتوى

سؤال بخصوص الداله Round و Trunc


awn78

Recommended Posts

اخواني الاعزاء اعضاء هذا المنتدى الرائع
السلام عليكم ورحمة الله وبركاته
حاولت مرارا وتكرارا ان افهم كيف تعمل الداله راوند عندما تكون قيمة n عدد سالب احيانا اجد انهم يضيفوا خمسه الى الجزء الصحيح واحيانا اجد ان العدد يصبح صفر عندما تكون قيمة n تساوي -2
ارجو منكم مساعدتي في فهم هذه الداله هي والداله Trunc عندما تكون قيمة ى سالبه
ارجو الشرح بالتفصيل

وشكرا لكم..................

رابط هذا التعليق
شارك

لو قلنا مثلاً :-

SQL> select round ( 55.88,0 ) from dual;

ROUND(55.88,0)
--------------
		56



فكده طلع الناتج 56 علشان الرقم العشرى اللى جنب ال 55 - اللى هو 8 - فوق ال 5



طيب لو قلنا :-


SQL> select round ( 55.88,-1) from dual;

ROUND(55.88,-1)
---------------
		 60



فده معناه اننا بنجيب الرقم العشرى فى نهايته او بديته يعنى ييبقى الرقم يا 60 يا 50 و ده بيتحدد بالرقم الاحاد فاذا كان فوق ال 5 او بيساويها يبقى الناتج النهائى 60 و اذا كان رقم الاحاد اصغر من 5 يبقى الناتج 50

و هكذا بالمثل اذا قلنا :-


SQL> select round ( 55.88,-2) from dual;

ROUND(55.88,-2)
---------------
		100



فده معناه اننا بنجيب الرقم المؤوى - اى المائة - يعنى ييبقى الرقم يا 100 يا 0 و ده بيتحدد بالرقم العشرى فاذا كان فوق ال 50 او بيساويها يبقى الناتج النهائى

100 و اذا كان رقم العشرى اصغر من 50 يبقى الناتج 0

و ارجو ان تكون قد اوضحت الفكرة ....... و اذا كانت لديك اى استفسارات فتفضل ....... و بالتوفيق ان شاء الله

لو قلنا مثلاً :-

SQL> select round ( 55.88,0 ) from dual;

ROUND(55.88,0)
--------------
		56



فكده طلع الناتج 56 علشان الرقم العشرى اللى جنب ال 55 - اللى هو 8 - فوق ال 5



طيب لو قلنا :-


SQL> select round ( 55.88,-1) from dual;

ROUND(55.88,-1)
---------------
		 60



فده معناه اننا بنجيب الرقم العشرى فى نهايته او بديته يعنى ييبقى الرقم يا 60 يا 50 و ده بيتحدد بالرقم الاحاد فاذا كان فوق ال 5 او بيساويها يبقى الناتج النهائى 60 و اذا كان رقم الاحاد اصغر من 5 يبقى الناتج 50

و هكذا بالمثل اذا قلنا :-


SQL> select round ( 55.88,-2) from dual;

ROUND(55.88,-2)
---------------
		100



فده معناه اننا بنجيب الرقم المؤوى - اى المائة - يعنى ييبقى الرقم يا 100 يا 0 و ده بيتحدد بالرقم العشرى فاذا كان فوق ال 50 او بيساويها يبقى الناتج النهائى

100 و اذا كان رقم العشرى اصغر من 50 يبقى الناتج 0

و ارجو ان تكون قد اوضحت الفكرة ....... و اذا كانت لديك اى استفسارات فتفضل ....... و بالتوفيق ان شاء الله

رابط هذا التعليق
شارك

  • بعد 3 شهور...

شرح وافى من الاخ هانى لدالة الround

اما بخصوص دالة الtrunc فتستخدم لاستبعاد مجموعة ارقام وليس للتقريب كالاتى

TRUNC(27.65,0)
--------------
		27


فنرى انها لم تقرب الى 28 على الرغم من كون الجزء العشرى اكبر من 50, فهى تستبعد باقى الرقم فقط دون اى اعتبار

TRUNC(27.65,1)
--------------
	  27.6


كذلك هنا استبعت رقم 5 ولم تقم بأى تقريب

TRUNC(27.65,-1)
---------------
		 20


نجد هنا انها استبعت رقم 6 ليصيح العدد 20

وبذلك يكون الفرق بين الـ round & trunc قد اتضح

رابط هذا التعليق
شارك

  • بعد 5 سنة...

الاخ zakarotta شكرا على شرحك الجميل
بس بالنسبة لل (TRUNC(27.65,-1 انت قلت هنستبعد الرقم 6 مش المفروض تطلع 27 ازاي بقت 20
وشكرا




رابط هذا التعليق
شارك

  • بعد 3 سنة...

الاخ 

visiterman

بس بالنسبة لل (TRUNC(27.65,-1 انت قلت هنستبعد الرقم 6 مش المفروض تطلع 27 ازاي بقت 20

ممكن نقول مثلا لو انت رحت اشتريت حاجه ب 27.65 مثلا انت سلمت البائع 28 وانت ليك باقى 35 قرش فالراجل مش عندو باقى فانت تعمل ايه هتقولوا هات ال8 وتقلوا يبقالك فهى دى trunc  بتشيل الارقام  العشريه وبتشيل اول رقم صحيح , ويارب يكون شرح يوصل لحضرتك المفهوم .

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية