duda conceptual C++

Juan C. Olivares juancri en juancri.com
Lun Mayo 30 03:16:33 CLT 2011


2011/5/30 Joe Cabezas <joe.cabezas en gmail.com>

> quisiera saber si alguien puede ayudarme con esto, tengo las siguientes
> lineas:
>
>        float mm = 0.4;
>        float nn = 2.8;
>        int xx = 3;
>
>        int c = (mm * xx + nn);
>
>        cout << "c: " << c << endl;
>
>
> si hacéis la matemática: 0.4 * 3 + 2.8 = 4
> sin embargo el programa de arriba me imprime 3
>
>
Esto se produce por las operaciones de punto flotante. Probé en Linux x86 y
OS X y obtuve 4, sin embargo en un Linux virtualizado sobre amd64 obtuve 3.
Si convierto c a float, obtengo 4.

Suerte.

-- 
Atte,
Juan Cristóbal Olivares

*La disposición a admirar, casi a adorar, a los ricos y poderosos y a ....
descuidar a las personas más pobres … es la mayor y más universal causa de
corrupción de nuestros sentimientos morales (**Adam Smith)*


Más información sobre la lista de distribución Linux