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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

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


4 رد (ردود) على هذا الموضوع

#1 awn78

awn78

    عضو نشط

  • الأعضــاء
  • 491 مشاركة

تاريخ المشاركة 23 April 2007 - 11:08 PM

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

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

#2 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 24 April 2007 - 12:40 PM

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

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 zakarotta

zakarotta

    عضو

  • الأعضــاء
  • 13 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 30 July 2007 - 07:27 PM

شرح وافى من الاخ هانى لدالة ال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 قد اتضح

#4 visiterman

visiterman

    الرياض

  • الأعضــاء
  • 200 مشاركة
  • الاسم الأول:عرفات
  • اسم العائلة:رمضان
  • البـلـد: Country Flag
  • المنصب الحالي:Senior Oracle Developer-ADF&Java Developer

تاريخ المشاركة 23 March 2013 - 09:34 PM

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






#5 Ahmedreda Mohamed

Ahmedreda Mohamed

    عضو

  • الأعضــاء
  • 7 مشاركة
  • الاسم الأول:AhmedReda
  • اسم العائلة:Mahmoud
  • البـلـد: Country Flag
  • المنصب الحالي:ادرس Oracle Developer

تاريخ المشاركة 19 July 2016 - 05:54 PM

الاخ 

visiterman

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

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