我想求得10的2次方,
int i = pow(10,2);
结果发现得到的是99!
查了一下msdn,说是返回值为double型,然后赋给int的时候小数被切掉了。
int型的求n次方很常用的说,难道就没有平民版的pow?郁闷啊。

解决方案 »

  1.   

    更何况VC的这个函数用了函数模版了,也是重载了
    如果一定要是用整形就是这个函数了_Pow_int()
      

  2.   

    又试了一下,double i = pow(10,2);
    得到的是100.0000000000000000000000
    但是int i = (int)pow(10,2);强转类型之后确实是99了。小弟用的是eMbedded VC++
      

  3.   

    不行的话只能用格式输出了 double d = 2242.090;
    char ssss[64] = "\0";
    sprintf(ssss,"%.0f",d);
    int a = atoi(ssss);没现过嵌入式的,不知道是不是支持上面的函数
      

  4.   

    int i = (int)(pow(10, 2) + 0.5);
      

  5.   

    最后我自己写一个了,反正也很简单的说^O^,eVC好多函数都不好用
      

  6.   

    _Pow_int();是对的,我也遇到这种问题了。