تضييق الكسور
فارق صغير بين فيجوال بيزيك وسي
شارب، لم أنتبه له إلا بالأمس:
عند تحويل عدد كسري إلى عدد صحيح
(يسمى هذا بالتضييق Narrowing)، تقوم فيجوال بيزيك بتقريبه إلى أقرب عدد صحصح..
مثال
Dim a As Integer = 15.5
MsgBox(a) ' 16
ستعرض الرسالة 16 بسبب التقريب.
لكن سي شارب تتصرف بشكل مختلف، فهي
تتخلص من الكسر ولا تقوم بأي تقريب.. أي أنها تعيد أصغر عدد صحيح:
int a = (int)15.5;
MessageBox.Show(a.ToString( )); // 15
ستعرض الرسالة 15.
لكي تتحكم بشكل أفضل في عملية
التحويل في كلتا اللغتين، استخدم وسائل فئة الرياضيات Math Class،
مثل:
- Math.Round
للتقريب (15.4 تصير 15، و 15.6 تصير 16).
- Math.Floor
للتخلص من الكسر بدون تقريب (15.9 تصير 15).
- Math.Ceiling لجبر الكسر إلى أكبر عدد صحيح (15.1 تصير 16).
سأضيف هذا الفرق إلى كتابي
"فيجوال بيزيك وسي شارب: طريقك المختصر للانتقال من إحدى اللغتين إلى الأخرى" بإذن الله
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.