double (C# Reference)
The double keyword denotes a simple type that stores 64bit floatingpoint values. The following table shows the precision and approximate range for the double type.
Type  Approximate range  Precision  .NET Framework type 

double 
±5.0 × 10−324 to ±1.7 × 10308 
1516 digits 
You can mix numeric integral types and floatingpoint types in an expression. In this case, the integral types are converted to floatingpoint types. The evaluation of the expression is performed according to the following rules:

If one of the floatingpoint types is double, the expression evaluates to double, or bool in the case of relational or Boolean expressions.

If there is no double type in the expression, it evaluates to float, or bool in the case of relational or Boolean expressions.
A floatingpoint expression can contain the following sets of values:

Positive and negative zero.

Positive and negative infinity.

NotaNumber value (NaN).

The finite set of nonzero values.
For more information on these values, refer to IEEE Standard for Binary FloatingPoint Arithmetic, available on the Web site http://www.ieee.org/portal/index.jsp.
In the following example, an int, a short, a float, and a double are added together giving a double result.
// keyword_double.cs // Mixing types in expressions using System; class MixedTypes { static void Main() { int x = 3; float y = 4.5f; short z = 5; double w = 1.7E+3; // Result of the 2nd argument is a double: Console.WriteLine("The sum is {0}", x + y + z + w); } }
Output
The sum is 1712.5 
For more information, see the following sections in the C# Language Specification:

1.3 Types and Variables

4.1.5 Integral Types