c++ - 如何打印长双(全长)C++

标签 c++ long-integer cout iomanip

<分区>

我有一个 long double,我想使用 cout 打印它的所有数字(没有科学记数法的完整数字)。

这是代码:-

long double d = 3456489465498484.14159265358979;
cout << "Num: " <<  d << endl;

输出:-

Num: 3.45649e+015

虽然我希望输出是

Num: 3456489465498484.14159265358979;

我尝试了 precision 和 set precision,但似乎不是这样工作的。请帮忙

最佳答案

浮点值的内部表示通常是二进制,因此初始化它需要从十进制转换为二进制,显示它需要从二进制转换为十进制。大多数小数没有精确的二进制表示,大多数二进制小数也没有精确的十进制表示,所以一般来说,要求“所有”数字是没有意义的。你在进来的路上丢失了一些数字,在出去的时候会丢失更多。确定您想要的数量,并设置匹配的精度。

关于c++ - 如何打印长双(全长)C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17175067/

相关文章:

Oracle RawToHex 函数 - 如果返回值超过 varchar2 限制会发生什么?

c++ - 如何使用cout以全精度打印 double 值?

c++ - Eclipse CDT 顾问中的奇怪输出

c++ - Unicode SQLDriverConnectW() : [unixODBC][Driver Manager]Data source name not found, 且未指定默认驱动程序

c++ - 为什么在 C 中直接将无符号转换为有符号会给出正确的结果?

c++ - CWinThread::PumpMessage 做什么

java - java中如何声明数组为long类型?

java - 如何操作 long 中的位?

c++ - 是否可以在 C++ 文件中显示 void function cout 输出?

c++ - 使用 boost::bind 实现空操作仿函数