1

我有一个很长的双精度数,我想使用 cout 打印它的所有数字(没有科学计数法的完整数字)。

这是代码:-

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

输出:-

Num: 3.45649e+015

虽然我希望输出是

Num: 3456489465498484.14159265358979;

我尝试了精度并设置精度,但似乎并没有以这种方式工作。请帮忙

4

1 回答 1

0

浮点值的内部表示通常是二进制的,因此初始化它需要从十进制转换为二进制,显示它需要从二进制转换为十进制。大多数十进制分数没有精确的二进制表示,并且大多数二进制分数没有精确的十进制表示,所以一般来说,要求“所有”数字是没有意义的。您在进入的过程中丢失了一些数字,并且在退出的过程中会丢失更多。决定你想要多少,并设置要匹配的精度。

于 2013-06-18T17:43:33.340 回答