منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
تقريب الكسور العشرية للمبلغ الناتج الى اقرب ٠.٢٥ او ٠,٥٠ او ٠,٧٥ او ١ جنيه فقط - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : تقريب الكسور العشرية للمبلغ الناتج الى اقرب ٠.٢٥ او ٠,٥٠ او ٠,٧٥ او ١ جنيه فقط (/showthread.php?tid=25733)



تقريب الكسور العشرية للمبلغ الناتج الى اقرب ٠.٢٥ او ٠,٥٠ او ٠,٧٥ او ١ جنيه فقط - تناسيم - 14-07-18

السلام عليكم
اريد في ناتج عملياتي الحسابية في البرنامج تقريب الناتج الذي يحتوي على كسر بالقروش  الي اقرب ٠.٢٥قرش او ٠.٥٠ قرش  او ٠.٧٥ قرش  او ١ جنيه فقط حيث بالفعل اقوم بتقريب الناتج  باستخدام الدالة round لاقرب رقمين عشرين ولكني اريد الان التقريب فقط  لاقرب ٠.٢٥ او ٠.٥٠ او٠,٧٥ او ١
مثلا اريد ٠,١٥ تصبح ٠.٢٥ قرش و ٠.٣٣ تصبح ٠.٥٠ قرش و ٠.٦٦ الى ٠,٧٥  قرش وفيما فوق ٠.٧٥ قرش مثل ٠.٧٦ ،  ٠.٩٩ تصبح ١صحيح فكيف يمكن عمل ذلك
ارجو المساعدة وشكرا


RE: تقريب الكسور العشرية للمبلغ الناتج الى اقرب ٠.٢٥ او ٠,٥٠ او ٠,٧٥ او ١ جنيه فقط - Done - 14-07-18

PHP كود :
Public Function XRound(As Double) As Double
    Dim a 
Fix(c), a
    
If And 0.25 Then b 0.25
    
If 0.25 And 0.5 Then b 0.5
    
If 0.5 And 0.75 Then b 0.75
    
If 0.75 Then b += 1
    
Return b
End 
Function 

PHP كود :
Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click
    MsgBox
(XRound(Val(TextBox1.Text)))

End Sub 



RE: تقريب الكسور العشرية للمبلغ الناتج الى اقرب ٠.٢٥ او ٠,٥٠ او ٠,٧٥ او ١ جنيه فقط - elgokr - 14-07-18

الك كود بسيط يمكنك استخدامه والتعديل عليه
طبقاً للارقام المطلوبة لك

كود :
       Dim MNumber_() As String = Split(Val(TextBox1.Text).ToString("0.00"), ".")
       If MNumber_(1) >= 0 And MNumber_(1) <= 14 Then MNumber_(1) = 0
       If MNumber_(1) >= 15 And MNumber_(1) <= 32 Then MNumber_(1) = 25
       If MNumber_(1) >= 33 And MNumber_(1) <= 65 Then MNumber_(1) = 50
       If MNumber_(1) >= 66 And MNumber_(1) <= 85 Then MNumber_(1) = 75
       If MNumber_(1) >= 86 And MNumber_(1) <= 99 Then
           MNumber_(0) = Val(MNumber_(0)) + 1
           MNumber_(1) = 0
       End If
       Dim VNumber_ As Double = Val(MNumber_(0) & "." & MNumber_(1))
       MsgBox(VNumber_.ToString("0.00"))

تحياتى لك
وتمنياتى لك التوفيق