Floating-point explained

Hey, was reading up on the datatypes and I found the explenation of the floating point values on the arduino site, I found the following:

Floating-point numbers can be as large as 3.4028235E+38 and as low as -3.4028235E+38

Can anyone explain me what the E+38 means, I mean what is the minumum number the float can take and what is the maximum number the float can take?

"Scientific notation" i think it is called

3.4028235E+38 = 3.4028235 * 10^38.

^ is 'power' in this case not c++ 'xor'

3.4028235E+38 = 3.4028235 * 10^38.

Also sometimes written 3.4028235 x 1038.

E stands for "exponent" - this notation has been standard on computers using ASCII characters (no superscript available) since the language Fortran I think. For double precision (64 bit IEEE floats - not available on Arduino) sometimes "D" is substituted for "E".

The way IEEE floating point is implemented is 1 bit for the sign, 8 bits for the binary exponent, 23 bits for the 'mantissa'. Without hardware support floating point operations are much slower than integer operations, mainly because the format needs unpacking and re-packing in software.

Fixed-point representation is thus fairly popular on microcontrollers without float hardware support - much less overhead (but the position of the (binary) point has to be fixed which is less flexible.