在C ++中,如何获得与计算器完全相同的输出?

时间:2015-10-31 18:52:01

标签: c++

我使用setprecision&固定,但我想切断尾随零,我该怎么做cout?

#include <iostream>
#include<iomanip>

int main()
{
    double b = 132.7489;
    double a = 49.932;
    double e = a + b;
    std::cout << std::fixed;
    std::cout << std::setprecision(20);
    std::cout << e;
}

如何告诉程序自动切断精确答案的尾随小数位,如计算器。对不起,这是我第一次来这里。我习惯了Javascript&amp;我从未遇到过精确数学问题。我到处搜索了。

2 个答案:

答案 0 :(得分:2)

这样做......

#include <iostream>

using namespace std;

int main()
{

    float f = 42.43500000f, f2 = 25.004300;
    cout << defaultfloat << f << endl;
    cout << defaultfloat << f2 << endl;

    return 0;
}

defaultfloat是std名称空间中定义的格式标志。

答案 1 :(得分:0)

如果打印是您唯一关注的问题,您可以使用printf%g格式。

默认情况下会打印六位有效数字,您可以使用足够长的数字宽度,例如.10

printf("%.10g",e); 

所以:

#include <iostream>
#include<cstdio>
int main()
{
    double b = 132.7489;
    double a = 49.932;
    double e = a + b;
    printf("%.10g",e);
}