读书人

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

发布时间: 2012-08-08 14:32:45 作者: rapoo

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).

读书人网 >C语言

热点推荐