اذهب الي المحتوي
أوفيسنا

( تمت الفائدة ) - الدالة Cint لا تجبر القيمة 0.5


الردود الموصى بها

السلام عليكم

توجد مشكلة في الدالة Cint لجبر الكسور

فعندما تكون قيمة الكسر تساوي (50) فإن الدالة لا تجبره للرقم الأعلى

والمطلوب أن يتم جبر قيمة الكسر (50) للرقم الأعلى

ولكم الشكر مقدماً

_________50.rar

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

الاخت / نرجس الورد

وعليكم السلام ورحمة الله وبركاته

يوجد حلً للمهندس اسامة المقدم جزاه الله خيراً بهذا الخصوص. تم استخدامه

وبالتوفيق

_________50.rar

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

  • 3 months later...

السلام عليكم

أخواني الكرام

لقد لاحظت مشكلة خطييييييييررررررة في دوال الجبر

فحوالي منذ ثلاث ساعات جالسة على الكمبوتر اراجع الدوال ولم أحصل على دالة جبر تعمل بشكل سليم وصحيح

مشكلة الدالة Cint أنها تقوم بجبر الكسور للأعلى عندما يكون الرقم العشري يساوي أو يتعدى العدد ( 0.50 ) وذلك للأرقام الصحيحة الفردية فقط دون الزوجية !!!! فإذا كان الرقم الصحيح زوجي فإنها لا تجبر الكسر ( 0.50 ) بل تضع الرقم الصحيح الزوجي نفسه !!

بينما الدالة Int صحيح تقوم بجبر الكسر ( 0.50 ) وسواء كانت الأرقام الصحيحة فردية أو زوجية لا تفرق

لكنها في نفس الوقت تجبر جميع الكسور حتى تلك التي أقل من ( 0.50 ) !!

وتقريباً أغلب من يبحث عن دوال جبرية لا يريدها ان تجبر الأقل من ( 0.50 )

فهل بالإمكان تجاوز مشاكل هذه الدوال ؟

ملاحظة لمشرفي أوفيسنا :

يا حبذا لو يتم تجميع مواضيع الدوال في موضوع فهرسي

ولكم جزيل الشكر :rol:

Cint___Fix___Int.rar

تم تعديل بواسطه نرجس الورد
رابط هذا التعليق
شارك

السلام عليكم

بعد عناء ليس بقصير توصلت للحل بفضل الأخت زهرة

حيث وجدت لها مثال في الفريق العربي ولتعذرنا بنقل وتغيير بسيط في مثالها الرائع موصول لها الشكر الجزيل

المثال الأول هو الأصل بدون تعديل

والمثال الثاني نفسه ولكن قمت بتغيير العدد (0.5) في الوحدة النمطية إلى العدد (0.49) واستطعت الحصول على ما أريده

جزاكم الله جميعاً ألف خير وحقق لكم أحلامكم

Round_UP_Down.rar

Round_UP_Down2.rar

تم تعديل بواسطه نرجس الورد
رابط هذا التعليق
شارك

بقيت مشكلة لم أعرف كيف يتم حفظ ناتج التقريب في الجدول

جربت تطبيق الدالة في الاستعلام فنجحت

شكرااااااااا للجميع :fff:

تم تعديل بواسطه نرجس الورد
رابط هذا التعليق
شارك

دالة لـ أبو هادي :
دالة RoundUp, بديلة لدالة Round

كود
Function RoundUp(ByVal Expression, _
       Optional ByVal NumDecimalPlaces = 0) As Double
Dim Rnd

On Error Resume Next

If NumDecimalPlaces < 0 Then NumDecimalPlaces = 0
If NumDecimalPlaces > 22 Then NumDecimalPlaces = 22

Rnd = 0
If Expression <> 0 Then
   Rnd = Val("0." & String(NumDecimalPlaces + 1, "0") & "1")
End If

RoundUp = Round(Expression + IIf(Expression > 0, Rnd, -Rnd), _
                 NumDecimalPlaces)
End Function
وهذا اختبار للدالة ومقارنتها مع ثلاث دوال أخرى :
كود
Sub RoundingTest()
  Dim Num As Double
  
  Num = 0.5
  
  MsgBox CInt(Num) & vbNewLine & _
         CLng(Num) & vbNewLine & _
         Round(Num) & vbNewLine & _
         RoundUp(Num)
End Sub

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

  • 5 months later...

السلام عليكم ورحمة الله وبركاته

أتقدم بالشكر الجزيل والحب الكبير لهذا المنتدى الرائع بل الأكثر من رائع أسأل الله العلي القدير لكم التوفيق

وأن يجعلكم من أهل جنات النعيم والفردوس الاعلى يا رب العالمين

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

  • 5 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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

×   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

×   Your previous content has been restored.   Clear editor

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

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information