为什么会这样:
printf("%d\n", pow(1,0)); /* outputs 0 */
回报0
?我希望它会回来1
。
您需要将结果类型转换为 int,因为 pow() 返回 double。
printf("%d\n",(int) pow(1,0));
这给了你想要的输出 1
注意:pow(a,b)
当 a 和 b 都与您的情况一样时,会给出正确的结果。但是在处理时integers
您需要对结果进行四舍五入,以便将结果四舍五入到最接近的整数。add 0.5
fractions
printf("%d\n",(int) (pow(2.1,0.9)))// will return 1.
printf("%d\n",(int) (pow(2.1,0.9)+0.5));//will return 2.
希望它可以帮助你。