c++ - c++中关于double的查询

标签 c++ double

在解决特定网站上的问题时,我写了这段代码:

#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/

相关文章:

c - 从函数传递双值时无法打印答案(C 语言)

c++ - 如何用逗号打印 double

c++ - 用 C++ : legal or not? 重新解释这个

android - 使用 Android NDK 构建 native OpenCV 给出 "undefined reference to ' cv::String::deallocate( )'"

c++ - g++ 模板名称修改

c++ - Producer Consumer 使用 intel-pin 内线程

c++ - get 方法上的代码崩溃,C++

java - 如何添加我的文本区域

java - java中固定小数位 double 和十的幂格式

c++ - Windows EXE/DLL : what is a "packed image"