gpt4 book ai didi

c - 为什么C比较3等于3.0?

转载 作者:行者123 更新时间:2023-11-30 18:44:30 25 4
gpt4 key购买 nike

问题是我无法理解计算机如何理解 3 和 3.0 是相同的。

我认为 INT 会隐式转换为 FLOAT?

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a=3;
float b=3.0;
if(a==b)
printf("s");
else
printf("w");
return 0;
}

我期望代码的输出是w,但实际输出是s。为什么?请向我解释一下计算机的视角。

最佳答案

无论如何,就数字而言,相等运算符 == 并不意味着“这两件事在各方面都相同吗?”它的意思是,“这两件事具有相同的值(value)吗?”

整数 3 和 float 3.0 显然具有相同的值,因此 if(3 == 3.0) 为 true .

同样,在 ASCII 机器上,'A' 字符的值为 65,因此 if('A' == 65) 为 true,即使字母 A 和数字 65 乍一看可能看起来非常不同。

关于c - 为什么C比较3等于3.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57811091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com