ในภาษา C# นั้น ข้อมูลประเภทจำนวนเต็มจะแบ่งเป็นหลายขนาด ซึ่ง Byte เป็นข้อมูลที่เก็บค่าได้น้อยที่สุด ส่วน Long จะเก็บค่าได้มากที่สุด และนอกจากนี้ยังมีประเภทแบบไม่มีเครื่องหมายด้วยที่เก็บเพียงจำนวนเต็มบวกเท่านั้นที่เรียกว่า unsigned
ตัวอย่างในการประกาศและใช้งานตัวแปรประเภทตัวเลขในภาษา C#
using System;
class NumberExample
{
static void Main(string[] args)
{
int apple = 10;
int mango = 5;
int totalFruit = apple + mango;
Console.WriteLine(“We have {0} fruits in the basket”, totalFruit);
byte month = 12;
byte day = 10;
short year = 2016;
Console.WriteLine(“Date {0}/{1}/{2}”, month, day, year);
decimal bigNumber = 9460730472580800;
Console.WriteLine(bigNumber.ToString(“0.00000E0”));
int max = Int32.MaxValue;
Console.WriteLine(max);
max = max + 1;
Console.WriteLine(max);
}
}
ในตัวอย่างเป็นการประกาศตัวแปรในการเก็บตัวเลขที่ประกอบไปด้วยตัวแปรประเภทต่างๆ มีการประกาศตัวแปร Integer สำหรับเก็บจำนวนของผลไม้และหาผลรวมในตัวแปร totalFruit และจากนั้นแสดงผลรวมออกทางหน้าจอ
byte month = 12;
byte day = 10;
short year = 2016;
…
decimal bigNumber = 9460730472580800;
ต่อมาเป็นการประกาศตัวแปรสำหรับเก็บค่าของวันเดือนปี เราใช้ตัวแปรประเภท byte และ short เพราะว่าการใช้ประเภทข้อมูลเหล่านี้ก็สามารถเก็บค่าของวันที่ได้เพียงพอแล้ว ดังนั้นคุณควรจะเลือกใช้ขนาดของตัวแปรให้เหมาะสมกับข้อมูล ในตัวอย่างในตัวแปร month และ day นั้นมีค่าที่มากที่สุดเป็น 31 ดังนั้นการเลือกใช้ byte ในการเก็บทำให้ประหยัดหน่วยความจำได้ และประกาศตัวแปรประเภท decimal สำหรับเก็บค่าของตัวเลขขนาดใหญ่
int max = Int32.MaxValue;
Console.WriteLine(max);
max = max + 1;
Console.WriteLine(max);
สุดท้ายเป็นการเกิด Overflow ในการเขียนโปรแกรม ซึ่งจะเกิดขึ้นเมื่อข้อมูลภายในตัวแปรนั้นเพิ่มขึ้นมากกว่าค่าสูงสุด หรือลดลงมากกว่าค่าต่ำสุดที่ตัวแปรสามารถเก็บค่าได้ ในตัวอย่างเราได้กำหนดค่าให้กับตัวแปร max จาก Property Int32.MaxValue ซึ่งเป็นค่าสูงสุดของข้อมูลแบบ Integer หลังจากนั้นเราได้เพิ่มค่าของตัวแปรไป 1 ทำให้ค่าของตัวแปรเกินค่าสูงสุดที่รับได้ ซึ่งค่าสูงสุดของ Integer คือ 2,147,483,647 ดังนั้นตัวแปรจึง Overflow ไปยังค่าต่ำสุด
ผลลัพธ์ของโปรแกรมในการทำงานกับตัวเลข
We have 15 fruits in the basket
Date 12/10/2016
9.46073E15
2147483647
-2147483648