We perform many casts, and each is described in a separate section of the text. Casting some values can result in unexpected behavior.
// Part 1: cast 4 double values.
{
double value1 = 1.1;
int value2 = (int)value1;
System.Console.WriteLine(
"{0} -> {1}", value1, value2);
}
{
double value1 = 1.5;
int value2 = (int)value1;
System.Console.WriteLine(
"{0} -> {1}", value1, value2);
}
{
double value1 = 1.99;
int value2 = (int)value1;
System.Console.WriteLine(
"{0} -> {1}", value1, value2);
}
{
double value1 = -1.1;
int value2 = (int)value1;
System.Console.WriteLine(
"{0} -> {1}", value1, value2);
}
// Part 2: cast long values.
{
long value1 = 10000000000;
int value2 = (int)value1;
System.Console.WriteLine(
"{0} -> {1}", value1, value2);
}
{
ulong value1 = 10000000000;
int value2 = (int)value1;
System.Console.WriteLine(
"{0} -> {1}", value1, value2);
}
// Part 3: cast large double values.
{
double value1 = 10000000000;
int value2 = (int)value1;
System.Console.WriteLine(
"{0} -> {1}", value1, value2);
}
{
double value1 = -10000000000;
int value2 = (int)value1;
System.Console.WriteLine(
"{0} -> {1}", value1, value2);
}
1.1 -> 1
1.5 -> 1
1.99 -> 1
-1.1 -> -1
10000000000 -> 1410065408
10000000000 -> 1410065408
10000000000 -> -2147483648
-10000000000 -> -2147483648