32

类似的话题已经在论坛中讨论过了。但是我在以下代码中有一些不同的问题:

double total;
cin >> total;
cout << fixed << setprecision(2) << total;

如果我给出输入,100.00那么程序只打印100但不打印100.00

如何打印100.00

4

5 回答 5

81
cout << fixed << setprecision(2) << total;

setprecision指定最小精度。所以

cout << setprecision (2) << 1.2; 

将打印 1.2

fixed表示小数点后会有固定的小数位数

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

将打印 1.20

于 2013-04-29T13:41:33.967 回答
6

可以使用以下命令在 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;
于 2015-03-20T14:02:59.780 回答
3

最简单的方法是使用 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

您尝试运行的代码将无法使用此编译器选项运行...

于 2013-12-27T15:28:25.990 回答
1

这可以通过 setiosflags(ios::showpoint) 实现。

于 2013-04-29T13:39:59.960 回答
1

使用头文件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
}
于 2016-05-03T08:41:17.790 回答