我正在使用Dev C ++编译器来理解指针的一些漂亮用法,这是我观察到的,我真的很想知道
在上图中,当我使用d的值为52.xxx并将其传递给print函数时,它不会对值进行舍入,并按其浮点表示形式打印该值,现在查看以下内容图 -
#include<iostream>
using namespace std;
int main(){
double d = 52.664;
cout << d << endl
}
此代码的输出为52.664
对于d = 56455.66456它将它舍入下一个值,为什么会这样,有人可以解释一下C ++编译器在这里做什么的行为?
答案 0 :(得分:5)
标准库选择&#34;中间地带&#34;默认情况下的精度级别。你可以调整它:
#include <iostream>
#include <iomanip>
int main() {
std::cout << "Default precision: " << 526686.6664 << "\n"
<< "Chosen precision: "
<< std::setprecision(10) << 526686.6664 << "\n";
}
答案 1 :(得分:1)
打印double
值时,您似乎有6位十进制数字。