pow(x,y)适用于浮点数,但不适用于整数

时间:2018-07-09 22:10:32

标签: c floating-point integer

我写了一个程序来计算前五个数字的立方:

 $name=env('NAME');
 dd($name); //should output "World"

这不起作用。它打印:

#include <stdio.h>
#include <math.h>
int main() {
  for(int i = 1; i <= 5; i++) {
    printf("%d ",pow(i,3));
  }
}

但是,使用float可以起作用:

0 0 0 0 0

并打印:

#include <stdio.h>
#include <math.h>
int main() {
  printf("%f\n",pow(3,3));
  for(float i = 1; i <= 5; i++) {
    printf("%f ",pow(i,3));
  }
}

整数有什么问题?为什么这仅适用于浮点数?

1 个答案:

答案 0 :(得分:2)

首先pow(i,j)返回双精度值,而不是整数。试试这个代码

int main() {
     for(int i = 1; i <= 5; i++) {
         printf("%f ",pow(i,3));
     }
return 0;
}