繁体   English   中英

printf中的C语言计算

[英]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/20.5 ,而在使用%dprintf进行计算时, 1.0/20 (我认为...)

我无法理解这种情况...

另外,当我在第二个代码中将%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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM