Python operación extraña?

¿Puede alguien explicarme por qué el siguiente código se comporta como lo hace? (Es Python en la línea de comandos en Windows7 x64)

>>>2.22 + 0.22 2.44000000000000004 >>>(222+22)/100 2.44 

Las operaciones de punto flotante están limitadas en la percisión, y en python las limitaciones están bien documentadas. Puedes leerlo aquí

Todas las matemáticas de punto flotante son así y se basan en el estándar IEEE.

Se sabe que las opraciones de punto flotante causan errores.

http://en.wikipedia.org/wiki/IEEE_floating_point

Usa el módulo decimal si quieres cálculos precisos.

Esto se debe al formato de los datos.

 2.22 + 0.22 != 2.44 // both are float // when you use them to calculate, they are giving consistently "wrong" results // because the datatype in itself gets incorrect when moving into deep comma space (222+22) / 100 // becomes this in calculation 222+22 = 244 --> 244/100 = 2.44 

Los números que está agregando están en formato flotante . Eso significa que tiene decimales. Los números de la segunda línea de las matemáticas son todos enteros, por lo que están en forma de enteros . Se sabe que la forma flotante produce errores al realizar ecuaciones matemáticas.