C# Data Types

As explained in the variables chapter, a variable in C# must be a specified data type:
int myNum = 5;               // Integer (whole number)
double myDoubleNum = 5.99D;  // Floating point number
char myLetter = 'D';         // Character
bool myBool = true;          // Boolean
string myText = "Hello";     // String


Try it Yourself »

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:
Number types are divided into two groups:
Integer types 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 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.
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);


Try it Yourself »

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);


Try it Yourself »

You should use a floating point type whenever you need a number with a decimal, such as 9.99 or 3.14515.
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);


Try it Yourself »

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);


Try it Yourself »

Use float or double?
The precision of a floating point value indicates how many digits the value can have 
after the decimal point.
The precision of float is only six or seven 
decimal digits, while double variables have a precision 
of about 15 digits. Therefore it is safer to use double for most calculations.
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);


Try it Yourself »

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


Try it Yourself »

Boolean values are mostly used for conditional testing, which you will learn more about in a later chapter.
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);


Try it Yourself »

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);


Try it Yourself »

Add the correct data type for the following variables:
 myNum = 9;
 myDoubleNum = 8.99;
 myLetter = 'A';
 myBoolean = false;
 myText = "Hello World";

Start the Exercise
We just launchedW3Schools videos
Get certifiedby completinga course today!
If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:
help@w3schools.com
Your message has been sent to W3Schools.