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