C#-এ সংখ্যা নিয়ে কাজ করার অন্যতম মূল বিষয় হলো ইন্টিজার (দশমিক চিহ্নের পরে কোনো অঙ্ক না থাকা সংখ্যা) এবং ফ্লোট সংখ্যার (দশমিক চিহ্নের পরে শূন্য বা তার বেশি অঙ্ক থাকা সংখ্যা) মধ্যে পার্থক্য।
C#-এ সবচেয়ে বেশি ব্যবহৃত দুটি সংখ্যাসূচক টাইপ হলো int (একটি ৩২-বিটের ইন্টিজার) এবং double (একটি ৬৪-বিটের ফ্লোট সংখ্যা)।
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;