本文介绍了在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之间的相等性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-12 10:40