C++ 如何阻止大浮点数以指数形式输出。(科学符号?)

C++ 如何阻止大浮点数以指数形式输出。(科学符号?),c++,C++,我有一个计算人口增长的程序。它似乎在起作用,但当人口超过100万后,它以十进制数字的形式输出,并提高到十的幂次方。(这叫做科学符号吗?指数形式?我忘了。) 是否仍然可以将数据作为完整的数字输出?这是我必须转换的输出代码 #include "header.h" void output (float currentPopulation, float years, float birthRate, float deathRate) { cout << "the p

我有一个计算人口增长的程序。它似乎在起作用,但当人口超过100万后,它以十进制数字的形式输出,并提高到十的幂次方。(这叫做科学符号吗?指数形式?我忘了。)

是否仍然可以将数据作为完整的数字输出?这是我必须转换的输出代码

#include "header.h"

void output (float currentPopulation, float years, float birthRate, float deathRate)

{     
     cout <<  "the populaion in " << years << " years will be: " << estimatedPopulation (currentPopulation, years, birthRate, deathRate) << endl;
}   
#包括“header.h”
无效产出(浮动人口、浮动年数、浮动出生率、浮动脱盐)
{     

不能改用printf,比如
printf(“%f”,myvalue)< /代码> 

浮点,你只有24位精度,大约是16777216。如果你处理的数字大于那个,你需要更精确的考虑使用<代码>双< /代码>。虽然我认为你仍然需要做一些格式化来让它看起来像你想要的样子。在这种情况下,我建议你看一下。
cout我建议阅读有关
std::scientific

与一起使用的操纵器应该对您有所帮助(请记住
#包括
)。

float v(123456781000000.0f);
计算精度(0);

当数字超过100万时,它是否只能添加一个指数。对于double,它是否也会添加一个指数?更新了一点我的答案,但我认为您需要根据我的(新)设置固定值第二个link.float vs.double与输出格式无关。当它们足够大时,默认值将切换为指数表示法。好吧,人口很少再适合数百万人,所以是的,它可以。我已经更新了我的答案,使用fixed包含。非常好,唯一的问题是,它在12月后以6个零输出小数点,但如果我使用STATICE-CAST,它显示了期望的结果:)谢谢斯个人发现PrimTf和C STDIO通常比使用C++ iOnStudio.YMMV要容易得多,实际上,为什么不呢?这是一个很好的例子,为什么不在C++中使用C STDIO,尝试编写一个打印代码,打印出一个代码,即“SigeZyt变量”,代码是跨平台的(或者是在G++和VS上编译)。这是最接近被问及的问题的答案,但我认为OP确实在寻找。
#include "header.h"

    void output (float currentPopulation, float years, float birthRate, float deathRate)

    {     
         cout <<  "the populaion in " << years << " years will be: " << fixed << setprecision(0) << estimatedPopulation (currentPopulation, years, birthRate, deathRate) << endl;
    } 
cout << fixed << estimatedPopulation (currentPopulation, years, birthRate, deathRate)
float v(1234567891000000.0f);
cout.precision(0);
cout << fixed << v << endl;