من الجوانب الأساسية عند التعامل مع الأعداد في C# التمييز بين الأعداد الصحيحة (الأعداد التي لا يوجد أي رقم بعد الفاصلة العشرية) والأعداد العشرية (الأعداد التي يوجد بعد الفاصلة العشرية صفر من الأرقام أو أكثر).
النوعان العدديان الأكثر استخدامًا في C# هما int (عدد صحيح بطول 32 بت) وdouble (عدد عشري بطول 64 بت).
int i = 123;
double d = 54.29;
يمكن استخدام المحرف _ بصفته فاصلًا للأرقام في كل من الأعداد الصحيحة والأعداد العشرية، وهو ما يساعد عند تعريف أعداد كبيرة:
int largeInt = 1_000_000;
// => 1000000
double largeDouble = 9_876_543.21;
// => 9876543.21
تُجرى العمليات الحسابية باستخدام عوامل الحساب القياسية (+، -، *، وغيرها). ويمكن مقارنة الأعداد باستخدام عوامل المقارنة القياسية (<، >=، وغيرها)، وكذلك عامل المساواة (==) وعامل عدم المساواة (!=).
5 * 6;
// => 30
1.2 > 0.8
// => true
2 != 4
// => true
عند التحويل بين الأنواع العددية، يوجد نوعان من التحويلات العددية:
ولأن دقة int أقل من دقة double، فإن التحويل من int إلى double آمن، ولذلك يُعد تحويلًا ضمنيًا. أما التحويل من double إلى int فقد يعني فقدان البيانات، ولذلك يتطلب تحويلًا صريحًا.
int i = 9;
double d = 2.66;
// Safe conversion, thus implicit conversion
double fromInt = i;
// Potentially unsafe conversion, thus explicit conversion
int fromDouble = (int)d;