功能不同输出功率(10,2)和功率(10,n),其中n = 2?

时间:2015-10-25 12:36:26

标签: c floating-point compiler-optimization pow

#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   

我知道如何消除这个问题。

如果不是整数zy是浮点数,它就会被删除。

我想知道C是如何将整数转换为浮动和其他转换的?

为什么使用2代替n消除了这个问题?

更新

这个问题What is happening here in pow function?谈论这件事,并有一些很好的答案。

0 个答案:

没有答案