اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

السلام عليكم..

في بلدي العراق لدينا أقل عملة نقدية وهي 250 دينار عراقي

احفظو هذا الرقم جيداً لأننا سنعود اليه

 

اردت ان اقوم بعمل برنامج للأقساط فكان مبلغ القسط الكامل هو ( 10,000 عشرة الآف دينار عراقي )

وكانت مدة الأقساط هي ( 3 شهور ) اذن نقوم بتقسيم المبلغ على المدة لكي يظهر لنا قيمة القسط لكل شهر

وعند التقسيم ظهرت الكارثة :Rules:

 

image.png.65486088377e97d8368f77672f0316b1.png

 

مبلغ غريب!!!!!!!!!! فلا هو 250 دينار ولا هو 500 دينار لا يمكن دفعة..

ماهو الحل؟؟

قمت بكتابة كود لحل هذه المشكلة، للأمانة الكود ليس من كتابتي 100% بل بنسبة 60% :rol:

 

Public Function RoundTo(d, roundRate, RoundType) As Double
    d = Math.Round(d, 7)
    If d <> 0 And roundRate <> 0 Then
        d = Ceiling(d)
        Dim num As Double
        num = d Mod roundRate
        If num > 0 Then
            If RoundType = 1 Then
                d = d + roundRate - num
            ElseIf RoundType = 2 Then
                d = d - num
            ElseIf RoundType = 3 Then
                If num >= roundRate / 2 Then
                    d = d + roundRate - num
                Else
                    d = d - num
                End If
            End If
        End If
    End If
    RoundTo = d
End Function

Public Function Ceiling(ByVal x As Double, Optional ByVal Factor As Double = 1) As Double
    ' X is the value you want to round
    ' Factor is the optional multiple to which you want to round, defaulting to 1
    Ceiling = (Int(x / Factor) - (x / Factor - Int(x / Factor) > 0)) * Factor
End Function

 

الاستخدام:

Private Sub cmd_calc_Click()

Dim TotalPrice, Result As Long
Dim Duration, i As Integer

    TotalPrice = 10000
    Duration = 3
    i = 1
    
    Result = TotalPrice / Duration
    
    Do While i <= Duration
        MsgBox RoundTo(Result, 250, 2)
        i = i + 1
    Loop
    
End Sub

 

ستظهر لنا النتيجة على شكل لووب مقسمة لإجزاء

سيتم جبر النتيجة من 3,333333 الى 250

فتكون: 3,250 الف دينار لـ 3 دفعات

 

ويمكنكم إستخدام الكود حسب العملة لديكم، بإستبدال 250 لإصغر قيمة عملة لديكم.

تحياتي لكم

  • Like 2

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.

×
×
  • اضف...

Important Information