本文介绍了在C中检查int和float之间的相等性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
int x = 3;
float y = 3.0;
if(x == y)
printf(x and y are equal);
else
printf(x和y不相等);
为什么这个代码打印出x和y相等?
这里如果y = 3.1(比如说),那么代码打印出x和y不相等。
请解释这是怎么发生的。
解决方案
算术类型之间的比较取决于所谓的通常的算术转换(§5/ 9,§5.9/ 2,§5.10/ 1)。强调我的。
I came across this piece of code :
int x=3;
float y=3.0;
if(x==y)
printf("x and y are equal");
else
printf("x and y are not equal");
Why does this code print "x and y are equal"??Here if y=3.1(say), then the code prints "x and y are not equal".Someone please explain how is this happening.
解决方案
Comparisons between arithmetic types are subject to the so-called usual arithmetic conversions (§5/9, §5.9/2, §5.10/1). Emphasis mine.
这篇关于在C中检查int和float之间的相等性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!