float (C# Reference)
The float keyword denotes a simple type that stores 32bit floatingpoint 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 × 1038 
7 digits 
By default, a real numeric literal on the righthand side of the assignment operator is treated as double. Therefore, to initialize a float variable, use the suffix f
or F
, like this:
float x = 3.5F;
If you do not 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.
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, the expression 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/.
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 { static void Main() { int x = 3; float y = 4.5f; short z = 5; Console.WriteLine("The result is {0}", x * y / z); } }
For more information, see the following sections in the C# Language Specification:

4.1.6 Floating Point Types

6.2.1 Explicit Numeric Conversions