#include
using namespace std;
int main()
{
double a;
cin >> a;
a=a-(int)a;
a=a*10000;
cout << (int)a;
return 0;
}
when i input 1.1500
then i get input 1499 but the output should be 1500
#include
using namespace std;
int main()
{
double a;
cin >> a;
a=a-(int)a;
a=a*10000;
cout << (int)a;
return 0;
}
when i input 1.1500
then i get input 1499 but the output should be 1500
There is loss of precision associated when you typecast a double/float to int.
In the last step again , you have typecasted it to int where this loss is occuring
cout<<a<<endl;
instead of
cout<<(int)a<<endl;
will give you 1500.
loss of precision associated…
instead of
cout << (int)a;
use
cout << a;
or
cout << (float)a;
it will give u 1500