The C# standard only lists double
and float
as floating points available (those being the C# shorthand for System.Double
and System.Single
),
but the decimal
type (shorthand for System.Decimal
) is also a floating point type really - it's just it'sdecimal floating point, and the ranges of exponents are interesting.
The decimal
type is described in another article, so this one doesn't go into it any further - we're concentrating on double
and float
.
Both of these are binary floating point types, conforming to IEEE 754 (a standard defining various floating point types).
float
is a 32 bit type (1 bit of sign, 23 bits of mantissa, and 8 bits of exponent),
and double
is a 64 bit type (1 bit of sign, 52 bits of mantissa and 11 bits of exponent).