#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
int n = 2;
int z = 2*pow(10,n);
int y = pow(10,n);
printf("%d %d" , z , y);
return 0;
}
Output is : 199 99
当我使用2
而不是n
int z = 2*pow(10,2)
int y = pow(10,2)
时。
Output is 200 100
我知道如何消除这个问题。
如果不是整数z
而y
是浮点数,它就会被删除。
我想知道C是如何将整数转换为浮动和其他转换的?
为什么使用2
代替n
消除了这个问题?
更新
这个问题What is happening here in pow function?谈论这件事,并有一些很好的答案。