C没有得到正确的结果

时间:2017-03-22 16:52:55

标签: c

我需要在程序中使用此变量的结果,但我不明白为什么我无法获得正确的结果。

double r = pow((3/2), 2) * 0.0001;
printf("%f", r);

2 个答案:

答案 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)