为什么我的程序输出是495而不是496

时间:2015-01-25 07:46:08

标签: c++

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cmath>
using namespace std;
class obj
{
    int arr[100],i,nod,sum;
    public:
    int init()
    {
        arr[0] = 4;
        arr[1] = 9;
        arr[2] = 6;
        nod = 3;
        sum = 0;
        sum = parseInt(arr);
        return sum;
    }
    int parseInt(int arr[])
    {
        for(i=nod-1;i>=0;i--)
        {
            sum = sum + arr[i] * pow(10,nod-1-i);
        }
        return sum;
    }
};
int main()
{
    obj o;
    cout<<o.init();
    getchar();
}

1 个答案:

答案 0 :(得分:0)

函数std::pow是浮点(double),对int的舍入是截断。一旦任何结果不准确(例如99.999999999而不是100),它将被截断,你将获得比预期更低的值。