# double

**Visual Studio .NET 2003**

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 × 10^{308} | 15-16 digits | System.Double |

#### Literals

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;

#### Conversions

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 http://www.ieee.org/.

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

#### Example

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 } }

#### Output

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