我需要在程序中使用此变量的结果,但我不明白为什么我无法获得正确的结果。
double r = pow((3/2), 2) * 0.0001;
printf("%f", r);
答案 0 :(得分:5)
问题是整数除法,其中小数部分(余数)被丢弃 尝试:
double r = pow((3.0/2.0), 2) * 0.0001;
pow() 的第一个参数需要加倍。因为比率:3/2
使用整数值,传递给参数的结果是1.通过更改为浮点值,除法的结果可以保留小数部分,结果变为1.5,即预期的形式功能
答案 1 :(得分:5)
(3/2)
涉及两个整数,因此它是整数除法,结果为1
。你想要的是浮点(双)划分,所以强制划分使用双精度,将其写为(3.0/2.0)