[英]C language calculation in printf
#include <stdio.h>
int main(){
int x;
x = (10+20)*(1.0/2);
printf("%d", x);
return 0;
}
输出是
15
并以另一种形式:
#include <stdio.h>
int main(){
printf("%d", (10+20)*(1.0/2));
}
输出是
0
在整数变量x
计算时, 1.0/2
为0.5
,而在使用%d
在printf
进行计算时, 1.0/2
为0
(我认为...)
我无法理解这种情况...
另外,当我在第二个代码中将%d
更改为%f
时,输出为15.000000
我在Windows 8中使用DEV C ++。
(10+20)*(1.0/2)
为double
,但是"%d"
期望为int
。
因此,您需要转换为int
:
printf("%d", (int) ((10+20)*(1.0/2)));
它与"%f"
因为它需要double
。
如前所述,您的问题在于投放问题。 因为1.0 / 2 = 0.5->由于int强制转换为0。 正确的方法是使用计算函数-返回整数,将其强制转换为int(如建议的那样),或者在printf之前进行计算。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.