2013-06-18 50 views
1

我有一个长双,我想打印使用COUT的所有数字(没有科学记数法的完整号码)。如何打印双长(全长)C++

下面的代码: -

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

输出: -

Num: 3.45649e+015 

虽然我所要的输出是

Num: 3456489465498484.14159265358979; 

我试图精度和设定精度,但似乎没有以这种方式工作。请帮助

+0

http://www.cplusplus.com/reference/ios/scientific/和http://www.cplusplus.com/reference/iomanip/应该有所帮助。您可以设置精度显示小数。 –

回答

0

一个浮点值的内部表示通常是二进制的,以便初始化它需要从十进制转换为二进制,并显示它需要从二进制到十进制的转换。大多数小数没有一个确切的二进制表示,大多数二进制小数没有一个准确的十进制表示,所以它是没有意义的,一般情况下,要求“所有”的数字。在途中你已经丢失了一些数字,并且在出路时会损失更多。决定你想要的数量,并设置匹配的精度。