السلام عليكم ورحمة وبركاته
كيف ازيد او انقص الارقام العشرية في C# و VB.NET
عندي هذا الرقم مثلا
0.655
ابغى ازيد 1
ليصبح هكذا الرقم 0.656
كيف يتم هذا الأمر ؟
كنت اعتقد الموضوع سهل لكن اكتشفت ان الأمر معقد وله طريقة خاصة !!!
(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 بدل انتجر
صورة
(27-05-22, 08:28 PM)نيمو كتب : [ -> ]استعمل Decimal للارقام العشرية جربت كل انواع الارقام العشرية وجمعت بدون مشكلة مافي امر معقد بالشغله
جربت انته وله لا ؟
بالنسبة للدالة انت تقدر تصنعهه سواء فكشن او سوب لكن استعمل Decimal بدل انتجر
صورة
شكرا لك اخي الكريم لكن يبدو ان سؤالي كان غير واضح عموما ساحاول ايصال فكرتي
اخي فلنفرض ان عندك ملف تكست داخلة 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)
تحياتي لك