Informatică, întrebare adresată de AdeElena, 9 ani în urmă

Salut! Exista vreo functie in C++ care sa afiseze primele x zecimale ale unui numar real fara sa le aproximeze? De exemplu, am numarul 2.189 si vreau sa se afiseze doar cu primele 2 zecimale, adica 2.18. Am folosit functia setprecision din libraria <iomanip>, dar imi afiseaza 2.19...​


CinevaFaraNume: Poti folosi [x * 10^p] / 10^p, unde p este numarul de zecimale.
Scrisa sub forma de cod:
floor(x * pow(10, p)) / pow(10, p);
AdeElena: Multumesc!!

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

#include <iomanip>

using namespace std;

float x, y;

int n;

int main()

{

   cin >> x;

   n=(int)(x*100);

   y=1.0*n/100;

   cout<<fixed<<setprecision(2)<<y;

}

Explicație:

e o soluţie....


AdeElena: Multumesc frumos!!
boiustef: cu plăcere, succese!
AdeElena: Multumesc!
xmrkertesx: Poti sa convertesti numarul intru-n sir de caractere si sa lucrezi
xmrkertesx: #include

using namespace std;

template string tostr(const T& t)
{
ostringstream os;
os< return os.str();
}

int main()
{
double x;
int a,i,j;

cout<<"Numarul : ";cin>>x;
cout<<"Dupa virgula : ";cin>>a;

string s=tostr(x);

char v[sizeof(s)];

strcpy(v,s.c_str());

int lg=strlen(v);

for(i=0; i {
cout< if(v[i]=='.')
break;
}

for(j=i+1;j<=i+a;j++)
cout<
return 0;
}
AdeElena: Multumesc!!
Alte întrebări interesante