Important | This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer |

# float

**Visual Studio .NET 2003**

The **float** keyword denotes a simple type that stores 32-bit floating-point values. The following table shows the precision and approximate range for the **float** type.

Type | Approximate range | Precision | .NET Framework type |
---|---|---|---|

float | ±1.5 × 10−^{45} to ±3.4 × 10^{38} | 7 digits | System.Single |

#### Literals

By default, a real numeric literal on the right-hand side of the assignment operator is treated as **double**. Therefore, to initialize a float variable use the suffix `f`

or `F`

, for example:

float x = 3.5F;

If you don't use the suffix in the previous declaration, you will get a compilation error because you are attempting to store a **double** value into a **float** variable.

#### 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, the expression 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**, and a **float** are included in a mathematical expression giving a **float** result (notice that there is no **double** in the expression).

// keyword_float.cs // Mixing types in expressions using System; class MixedTypes { public static void Main() { int x = 3; float y = 4.5f; short z = 5; Console.WriteLine("The result is {0}", x*y/z); } }

#### Output

The result is 2.7

#### See Also

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