我遇到了C ++问题:
#include<iostream>
#include<stdio.h>
using namespace std;
int main() {
double k = 1.2366;
cout << printf("%.3lf\n", k);
}
输出是:
1.237
6
但我希望:
1.237
为什么我在第二行获得额外的6?
答案 0 :(得分:5)
好吧,您先拨打printf
打印出该号码,然后将printf
(打印的字符数)的结果流式传输到cout
。
答案 1 :(得分:4)
这是因为printf
返回打印字符数。为了使您的代码正确,只需直接使用std::cout
所需的精度:
std::cout << fixed << setprecision(3);
std::cout << k << "\n";
如果您想要对结果进行舍入,请阅读指向您的How do you round off decimal places in C++?,例如楼/小区/圆。但是如果再次使用它,请注意不要对值本身进行舍入。