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

نسخة كاملة : كيفية زيادة وانقاص الارقام العشرية في C# و VB.NET
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة وبركاته
كيف ازيد او انقص الارقام العشرية في C# و VB.NET

عندي هذا الرقم مثلا
0.655
ابغى ازيد 1
ليصبح هكذا الرقم 0.656

كيف يتم هذا الأمر ؟

كنت اعتقد الموضوع سهل لكن اكتشفت ان الأمر معقد وله طريقة خاصة !!!
كود :
Dim Num As Decimal = Val(TextBox1.Text) + Val(TextBox2.Text)
       TextBox3.Text = Val(Num)

صورة للتوضيح
(26-05-22, 01:42 AM)نيمو كتب : [ -> ]
كود :
Dim Num As Decimal = Val(TextBox1.Text) + Val(TextBox2.Text)
       TextBox3.Text = Val(Num)

صورة للتوضيح
شكرا لك
لكن انا ابحث عن دالة تعمل مع جميع الاعداد العشرية
مثل هذي الاعداد
1.09663
0.00363370
12.636
الأمر معقد قليلا ولابد من دالة تتعامل مع جميع الاعداد العشرية
استعمل Decimal للارقام العشرية جربت كل انواع الارقام العشرية وجمعت بدون مشكلة مافي امر معقد بالشغله
جربت انته وله لا ؟
بالنسبة للدالة انت تقدر تصنعهه سواء فكشن او سوب لكن استعمل Decimal بدل انتجر

صورة
[صورة مرفقة: 165366907884251.png]


[صورة مرفقة: 165366907889042.png]
(27-05-22, 08:28 PM)نيمو كتب : [ -> ]استعمل Decimal للارقام العشرية جربت كل انواع الارقام العشرية وجمعت بدون مشكلة مافي امر معقد بالشغله
جربت انته وله لا ؟
بالنسبة للدالة انت تقدر تصنعهه سواء فكشن او سوب لكن استعمل Decimal بدل انتجر

صورة
[صورة مرفقة: 165366907884251.png]


[صورة مرفقة: 165366907889042.png]
شكرا لك اخي الكريم لكن يبدو ان سؤالي كان غير واضح عموما ساحاول ايصال فكرتي

اخي فلنفرض ان عندك ملف تكست داخلة 10.000 سطر كل سطر من هذي الاسطر يحتوي على رقم عشري عشوائي مثل
0.66
0.5454
11.435950
1.02
999.034
120.4550
...
وطلب منك ان تجمع رقم 5 مع كل رقم من هذي الارقام وتظهر الناتج
مثلا 0.66 +5

كيف سيكون الحل ؟

الافضل انك تعمل فنكشن تقوم باعطائها الرقم مثلا 0.66 ومقدر الزيادة اللي هو5 والفنكشن تعطيك الناتج

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

كود :
Public Shared Function Cala(number As Decimal, increment As Integer) As Single
        Dim ns = Str(number)
        Dim decimalPart As String = ns.Substring(ns.IndexOf(".") + 1)
        Dim decimalPartLength = Len(decimalPart)
        Dim numberToAdd As Single = (increment * (10 ^ (-decimalPartLength)))

        Dim result = number + numberToAdd
        Return Convert.ToSingle(result)
    End Function
End Class

الجمع
كود :
Cala(0.66,5)
Cala(0.5454,5)
Cala(11.435950,5)
Cala(1.02,5)
Cala(999.034,5)
Cala(120.4550,5)

واذا اردت الطرح
كود :
Cala(120.4550,-5)
Cala(1.02,-5)

تحياتي لك