在解决特定网站上的问题时,我写了这段代码:
#include <iostream>
int main()
{
long l{12345678912345};
char ch{'a'};
double d{14049.30493};
std::cout << l <<'\n' << ch <<'\n' << d <<'\n';
return 0;
}
令人惊讶的是,double 的输出是 14049.3,而不是完整的数字。如果我明确提到
std::cout.precision(10);
然后它打印完整的数字。我究竟做错了什么?
最佳答案
由 std::basic_ios::init 建立的默认精度为 6,这意味着输出限制为 6 位数字,除非逗号前需要更多数字。
请注意,precision
设置在确定逗号后的位数时会考虑所有数字(即逗号之前的和逗号之后的)可以打印。
关于c++ - c++中关于double的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46233764/