在cout中显示数字十进制格式而不是指数

时间:2011-05-13 22:23:50

标签: c++ cout

我计算了一些浮点数,我得到了一个像509990e-405这样的数字。我假设这是短版本;我怎么能cout这是一个完整的数字?

   cout << NASATotal << endl;

就是我现在拥有的。

2 个答案:

答案 0 :(得分:4)

您可以强制输出不是科学记数法,并且具有足够的精度来显示您的小数字。

#include <iomanip>

// ...

long double d = 509990e-405L;
std::cout << std::fixed << std::setprecision(410) << d << std::endl;

输出:

  

0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050999000000

如果你真的想要,这是另一个问题。

答案 1 :(得分:1)

您可以编写自己的BigNumber类,将结果存储为字符串。你必须实现所有的数字操作,我猜测性能将是一个问题。但它可以做到,没问题 - 假设这就是你想要的。