首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

pow函数跟double类型转换,出错

2012-08-08 
pow函数和double类型转换,出错#includemath.h#include stdio.h#include stdlib.hint main(){int aa

pow函数和double类型转换,出错
#include<math.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{

  int aa = 2;
  double a ;
  a = pow(10,aa);
  printf("%f %d %d %d\n",a,(long)a, (long)pow(10,2),(long)pow(10,aa));
  system("pause");
   
}
在windowsXP+Dev-C++4.9.9.2下输出为:
100.000000 100 100 99
为什么最后一个会是99而不是100?

[解决办法]
%d改成%ld试试,
BTW 我在gcc下输出没有问题
如下
100.000000 100 100 100
sh: pause: not found

[解决办法]
浮点数不精确。
[解决办法]
double pow(double,double).

热点排行