我是C++
的新用户,我只想输出最多2位数的点数。
就像数字是3.444
一样,那么输出应该是3.44
,或者如果数字是99999.4234
,那么输出应该是99999.42
,我该怎么做。价值是动态的。这是我的代码。
#include <iomanip.h>
#include <iomanip>
int main()
{
double num1 = 3.12345678;
cout << fixed << showpoint;
cout << setprecision(2);
cout << num1 << endl;
}
但它给了我一个错误,未定义的固定符号。
答案 0 :(得分:26)
#include <iomanip>
#include <iostream>
int main()
{
double num1 = 3.12345678;
std::cout << std::fixed << std::showpoint;
std::cout << std::setprecision(2);
std::cout << num1 << std::endl;
return 0;
}
答案 1 :(得分:6)
#include <iostream>
#include <iomanip>
using namespace std;
为方便起见,您可以输入行using namespace std;
。否则,每次您希望使用std::
,cout
,fixed
,showpoint
和setprecision(2)
时,您都必须明确添加endl
< / p>
int main()
{
double num1 = 3.12345678;
cout << fixed << showpoint;
cout << setprecision(2);
cout << num1 << endl;
return 0;
}
答案 2 :(得分:2)
上面的答案绝对正确。这是Turbo C ++版本。
#include <iomanip.h>
#include <iostream.h>
void main()
{
double num1 = 3.12345678;
cout << setiosflags(fixed) << setiosflags(showpoint);
cout << setprecision(2);
cout << num1 << endl;
}
对于fixed
和showpoint
,我认为应该使用setiosflags
函数。
答案 3 :(得分:1)
替换这些标题
#include <iomanip.h>
#include <iomanip>
有了这些。
#include <iostream>
#include <iomanip>
using namespace std;
多数民众赞成...... !!!
答案 4 :(得分:1)
std::cout.precision(2);
std::cout<<std::fixed;
当你使用运算符重载时,试试这个。
答案 5 :(得分:0)
#include <bits/stdc++.h> // to include all libraries
using namespace std;
int main()
{
double a,b;
cin>>a>>b;
double x=a/b; //say we want to divide a/b
cout<<fixed<<setprecision(10)<<x; //for precision upto 10 digit
return 0;
}
输入:1987年31
输出:662.3333333333小数点后10位
答案 6 :(得分:0)
#include <iostream>
#include <iomanip>
int main(void)
{
float value;
cin >> value;
cout << setprecision(4) << value;
return 0;
}
答案 7 :(得分:-1)
下面的代码正确运行。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double num1 = 3.12345678;
cout << fixed << showpoint;
cout << setprecision(2);
cout << num1 << endl;
}