C# Data Types

What is Data Types?

A data type specifies the size and type of variable values. It is important to use the correct data type for the corresponding variable; to avoid errors, to save time and memory, but it will also make your code more maintainable and readable. The most common data types are:

Data TypeSizeDescription
int4 bytesStores whole numbers from -2,147,483,648 to 2,147,483,647
long8 bytesStores whole numbers from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
float4 bytesStores fractional numbers. Sufficient for storing 6 to 7 decimal digits
double8 bytesStores fractional numbers. Sufficient for storing 15 decimal digits
bool1 bitStores true or false values
char2 bytesStores a single character/letter, surrounded by single quotes
string2 bytes per characterStores a sequence of characters, surrounded by double quotes
Data Type Comparison Table

Numbers

Number types are divided into two groups:

Integer types

It stores whole numbers, positive or negative (such as 123 or -456), without decimals. Valid types are int and long. Which type you should use, depends on the numeric value.

Floating point types

It represents numbers with a fractional part, containing one or more decimals. Valid types are float and double.

Even though there are many numeric types in C#, the most used for numbers are int (for whole numbers) and double (for floating point numbers). However, we will describe them all as you continue to read.

Integer Types

Int

The int data type can store whole numbers from -2147483648 to 2147483647. In general, and in our tutorial, the int data type is the preferred data type when we create variables with a numeric value.

int myNum = 100000;
Console.WriteLine(myNum);

Long

The long data type can store whole numbers from -9223372036854775808 to 9223372036854775807. This is used when int is not large enough to store the value. Note that you should end the value with an “L”:

long myNum = 15000000000L;
Console.WriteLine(myNum);

Floating Point Types

You should use a floating point type whenever you need a number with a decimal, such as 9.99 or 3.14515.

Float

The float data type can store fractional numbers from 3.4e−038 to 3.4e+038. Note that you should end the value with an “F”:

float myNum = 5.75F;
Console.WriteLine(myNum);

Double

The double data type can store fractional numbers from 1.7e−308 to 1.7e+308. Note that you can end the value with a “D” (although not required):

double myNum = 19.99D;
Console.WriteLine(myNum);

Booleans

A boolean data type is declared with the bool keyword and can only take the values true or false:

bool isCSharpFun = true;
bool isFishTasty = false;
Console.WriteLine(isCSharpFun);   // Outputs True
Console.WriteLine(isFishTasty);   // Outputs False

Boolean values are mostly used for conditional testing, which you will learn more about in a later chapter.

Characters

The char data type is used to store a single character. The character must be surrounded by single quotes, like ‘A’ or ‘c’:

char myGrade = 'B';
Console.WriteLine(myGrade);char myGrade = 'B';
Console.WriteLine(myGrade);

Strings

The string data type is used to store a sequence of characters (text). String values must be surrounded by double quotes:

string greeting = "Hello World";
Console.WriteLine(greeting);
using System;

namespace MyApplication
{
  class Program
  {
    static void Main(string[] args)
    {
      string greeting = "Hello World";
      Console.WriteLine(greeting);
    }
  }
}

Scientific Numbers

A floating point number can also be a scientific number with an “e” to indicate the power of 10:

float f1 = 35e3F;
double d1 = 12E4D;
Console.WriteLine(f1);
Console.WriteLine(d1);