+ 4
¿C++ redondea los números?
La cuestión es que, si por ejemplo la variable 'a' tiene el valor del entero 11, la siguiente cuenta (a*50)/100 debería dar 5.5, sin embargo el resultado en el compilador C++ de SoloLearn y en Sublime Text es 5, Agradecería una explicación, y me gustaría saber cómo hacer que el resultado sea un decimal.
1 Respuesta
+ 1
/*
Integer arithmetic prints integer results. If you want decimals in the output then use floating point arithmetic. Below you can see a few ways to get decimal output. You can use a (float) cast. You can use floating point literals in the calculation. You can declare the variable as float type instead of int.
*/
#include <iostream>
using namespace std;
int main() {
int a = 11;
float b = 11;
cout << "int a:" << endl;
cout << (a*50)/100 << endl; //5
cout << (float)(a*50)/100 << endl; //5.5
cout << (a*50.0)/100 << endl; //5.5
cout << (a*50)/100.0 << endl; //5.5
cout << "float b:" << endl;
cout << (b*50)/100 << endl; //5.5
return 0;
}