G
Guest
Несколько несложных вопросов по C++
Есть такой код:
// Задание 1 для float
const float af = 1000,
const float bf = 0.0001;
float cf = af+bf;
float df = pow(cf, 2);
float ef = pow(af, 2);
float ff = 2*af*bf;
float gf = pow(bf, 2);
float hf = df-(ef+ff); //cout << hf << endl;
float resultf = hf/gf;
cout << "Result (float) " << resultf << endl;
// Задание 1 для double
const double ad = 1000,
const double bd = 0.0001;
double cd = ad+bd;
double dd = pow(cd, 2);
double ed = pow(ad, 2);
double fd = 2*ad*bd;
double gd = pow(bd, 2);
double hd = dd-(ed+fd); //cout << hd << endl;
double resultd = hd/gd;
cout << "Result (double) " << resultd << endl;
Как объяснить почему для float и double получаются разные результаты при вычислении одного и того же выражения?
Как вывести на экран resultf в форме без "e" (т. е. в номальной десятичной 2.0003)?
В теле цикла есть такая строка
cout << "X=" << x << " SN=" << sn << " SE=" << se << " Y=" << pow(3, x) << endl;
Как сделать чтобы столбики были ровными?
Есть такой код:
// Задание 1 для float
const float af = 1000,
const float bf = 0.0001;
float cf = af+bf;
float df = pow(cf, 2);
float ef = pow(af, 2);
float ff = 2*af*bf;
float gf = pow(bf, 2);
float hf = df-(ef+ff); //cout << hf << endl;
float resultf = hf/gf;
cout << "Result (float) " << resultf << endl;
// Задание 1 для double
const double ad = 1000,
const double bd = 0.0001;
double cd = ad+bd;
double dd = pow(cd, 2);
double ed = pow(ad, 2);
double fd = 2*ad*bd;
double gd = pow(bd, 2);
double hd = dd-(ed+fd); //cout << hd << endl;
double resultd = hd/gd;
cout << "Result (double) " << resultd << endl;
Как объяснить почему для float и double получаются разные результаты при вычислении одного и того же выражения?
Как вывести на экран resultf в форме без "e" (т. е. в номальной десятичной 2.0003)?
В теле цикла есть такая строка
cout << "X=" << x << " SN=" << sn << " SE=" << se << " Y=" << pow(3, x) << endl;
Как сделать чтобы столбики были ровными?