fshb_ 1370
شنبه 16 مرداد 1389, 11:10 صبح
سلام
در برنامه زیر 3/10 برابر 3.3333333333333 میشه. جواب tube هم 3.333333 نمایش داده میشه، اما milion tubs را 3333333.250000 نمایش میدهد. چرا؟ مگه 6^10*3.333333 در جوابش 2 یا 5 داره؟
چرا جواب mint*milion با جواب tub*milion فرق داره؟ مگه نباید جواب هر دو یکی باشه؟
کد
cout.setf(ios_base::fixed, ios_base::floatfield);
باعث میشه عدد تا 6 رقم اعشار نمایش داده بشه؟
کد برنامه:
#include <iostream>
using namespace std;
int main()
{
cout.setf(ios_base::fixed, ios_base::floatfield); // fixed-point
float tub = 10.0 / 3.0; // good to about 6 places
double mint = 10.0 / 3.0; // good to about 15 places
const float million = 1.0e6;
cout << "tub = " << tub;
cout << ", a million tubs = " << million * tub;
cout << ",\nand ten million tubs = ";
cout << 10 * million * tub << "\n";
cout << "mint = " << mint << " and a million mints = ";
cout << million * mint << "\n";
return 0;
}
خروجی برنامه:
tub = 3.333333, a million tubs = 3333333.250000,
and ten million tubs = 33333332.000000
mint = 3.333333 and a million mints = 3333333.333333
در برنامه زیر 3/10 برابر 3.3333333333333 میشه. جواب tube هم 3.333333 نمایش داده میشه، اما milion tubs را 3333333.250000 نمایش میدهد. چرا؟ مگه 6^10*3.333333 در جوابش 2 یا 5 داره؟
چرا جواب mint*milion با جواب tub*milion فرق داره؟ مگه نباید جواب هر دو یکی باشه؟
کد
cout.setf(ios_base::fixed, ios_base::floatfield);
باعث میشه عدد تا 6 رقم اعشار نمایش داده بشه؟
کد برنامه:
#include <iostream>
using namespace std;
int main()
{
cout.setf(ios_base::fixed, ios_base::floatfield); // fixed-point
float tub = 10.0 / 3.0; // good to about 6 places
double mint = 10.0 / 3.0; // good to about 15 places
const float million = 1.0e6;
cout << "tub = " << tub;
cout << ", a million tubs = " << million * tub;
cout << ",\nand ten million tubs = ";
cout << 10 * million * tub << "\n";
cout << "mint = " << mint << " and a million mints = ";
cout << million * mint << "\n";
return 0;
}
خروجی برنامه:
tub = 3.333333, a million tubs = 3333333.250000,
and ten million tubs = 33333332.000000
mint = 3.333333 and a million mints = 3333333.333333