بتاريخ: 31 مارس 200817 سنة comment_125694 هذا الكود يقرب الارقام الي 0.25 ومضاعفاتها مثل 2253.21 يتم تقريبه الي 2253.25 وهكذا declare v_number number(10,2) :=&p_number;v_inte number(10);v_dcimal number(10,2);beginselect substr(v_number,-2 ,2) into v_inte from dual;if v_inte < 25 thenselect trunc(v_number,0)+0.25 into v_dcimal from dual;dbms_output.put_line(v_dcimal);elsif v_inte between 26 and 50 then select trunc(v_number,0)+0.50 into v_dcimal from dual;dbms_output.put_line(v_dcimal);elsif v_inte between 51 and 75 then select trunc(v_number,0)+0.75 into v_dcimal from dual;dbms_output.put_line(v_dcimal);end if ;end; تقديم بلاغ
بتاريخ: 31 مارس 200817 سنة comment_125695 السلام عليكمالاخ ابوشاهين الكود يقوم باضافة الكسر العشري 75 الي الارقام الصحيحةبمعني 555 تصبح 555.75 تقديم بلاغ
بتاريخ: 3 أبريل 200817 سنة comment_125913 السلام عليكم SET SERVEROUTPUT ON: declarev_number number(10,2) :=&p_number;v_inte number(10);v_dcimal number(10,2);begin--if v_number-trunc(v_number,0) > 0 then--select substr(v_number,-2 ,2) into v_inte from dual;if v_inte < 25 thenselect trunc(v_number,0)+0.25 into v_dcimal from dual;dbms_output.put_line(v_dcimal);elsif v_inte between 26 and 50 thenselect trunc(v_number,0)+0.50 into v_dcimal from dual;dbms_output.put_line(v_dcimal);elsif v_inte between 51 and 75 thenselect trunc(v_number,0)+0.75 into v_dcimal from dual;dbms_output.put_line(v_number);end if ;--else dbms_output.put_line(v_number);end if ;end; الاخ العزيز بعد اضافة جملة if الملونة يمكننا بهذه الطريقة تلاشي اضافة الكسر العشري للارقام الصحيحة تقديم بلاغ
بتاريخ: 3 أبريل 200817 سنة comment_125914 الاخ العزيزماذا يحدث لو كان الكسر العشري 25 مثال 5.25 >> لن تعطي نتيجة لان قيمة v_inte في هذه الحالة = 25و لعلاج هذا الخطأ نقوم بإضافة = الي علامة > اي لتكون اصغر من او يساوي => if v_inte <= 25 then بدلا من if v_inte < 25 then---- لكن ماذا عن الكسور العشرية التالية0.9 , 0.90 , 0.3 , 0.30 , 0.5 , 0.50 , 0.51 طبعا اقصد الكسر العشري نفسه و ليس القيمة المذكورة تم تعديل 3 أبريل 200817 سنة بواسطة amdabd تقديم بلاغ
بتاريخ: 7 أبريل 200817 سنة كاتب الموضوع comment_126225 set serveroutput on ; declare v_number number(10,2) :=&p_number; v_dcimal number(10,2); begin if v_number - trunc(v_number) = 0 then dbms_output.put_line(v_number); else if v_number - trunc(v_number , 0) <= 0.25 then v_dcimal := trunc(v_number , 0 ) +0.25 ; dbms_output.put_line(v_dcimal); elsif v_number - trunc(v_number , 0) between 0.26 and 0.50 then v_dcimal := trunc(v_number , 0 ) +0.50 ; dbms_output.put_line(v_dcimal); elsif v_number - trunc(v_number , 0) between 0.51 and 0.75 then v_dcimal := trunc(v_number , 0 ) +0.75 ; dbms_output.put_line(v_dcimal); end if ; end if ; end; تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.