类似的话题已经在论坛中讨论过了。但是我在以下代码中有一些不同的问题:
double total;
cin >> total;
cout << fixed << setprecision(2) << total;
如果我给出输入,100.00
那么程序只打印100
但不打印100.00
如何打印100.00
?
cout << fixed << setprecision(2) << total;
setprecision
指定最小精度。所以
cout << setprecision (2) << 1.2;
将打印 1.2
fixed
表示小数点后会有固定的小数位数
cout << setprecision (2) << fixed << 1.2;
将打印 1.20
可以使用以下命令在 C++ 中打印 15 位十进制数:
#include <iomanip>
#include <iostream>
cout << fixed << setprecision(15) << " The Real_Pi is: " << real_pi << endl;
cout << fixed << setprecision(15) << " My Result_Pi is: " << my_pi << endl;
cout << fixed << setprecision(15) << " Processing error is: " << Error_of_Computing << endl;
cout << fixed << setprecision(15) << " Processing time is: " << End_Time-Start_Time << endl;
_getch();
return 0;
最简单的方法是使用 cstdio 的 printf。实际上,我很惊讶有人提到 printf!无论如何,你需要包括图书馆,像这样......
#include<cstdio>
int main() {
double total;
cin>>total;
printf("%.2f\n", total);
}
这将打印带有 2 个浮点的 "total" 的值(就是这样%
,然后,total
是这样)(这就是.2f
那样)。最后\n
,只是行尾,这与UVa的判断在线编译器选项一起使用,即:
g++ -lm -lcrypt -O2 -pipe -DONLINE_JUDGE filename.cpp
您尝试运行的代码将无法使用此编译器选项运行...
这可以通过 setiosflags(ios::showpoint) 实现。
使用头文件stdio.h
,您可以像往常一样轻松地做到这一点,如 c. 在使用 %.2lf 之前(在 % 说明符之后设置一个特定的数字。)使用 printf()。
它只是 printf 小数点后的特定数字。
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
double total=100;
printf("%.2lf",total);//this prints 100.00 like as C
}