This documentation is archived and is not being maintained.


The double keyword denotes a simple type that stores 64-bit floating-point 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 15-16 digits System.Double


By default, a real numeric literal on the right-hand side of the assignment operator is treated as double. However, if you want an integer number to be treated as double, use the suffix d or D, for example:

double x = 3D;


You can mix numeric integral types and floating-point types in an expression. In this case, the integral types are converted to floating-point types. The evaluation of the expression is performed according to the following rules:

  • If one of the floating-point 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 floating-point expression can contain the following sets of values:

  • Positive and negative zero
  • Positive and negative infinity
  • Not-a-Number value (NaN)
  • The finite set of nonzero values

For more information on these values, refer to IEEE Standard for Binary Floating-Point Arithmetic, available on the Web site

For more information on floating-point value sets, see 4.1.5 Floating point types.


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 
   public static void Main()  
      int x = 3;
      float y = 4.5f;
      short z = 5;
      double w = 1.7E+3;
      Console.WriteLine("The sum is {0}", x + y + z + w);   // double result


The sum is 1712.5

See Also

C# Keywords | Default Values Table | Built-in Types Table | Floating-Point Types Table | Implicit Numeric Conversions Table | Explicit Numeric Conversions Table | Double Structure