2011/5/30 Joe Cabezas <joe.cabe...@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)*