如果我有int myInt1 = 02
and int myInt2 = 2
,一般来说,它们是像字符串一样比较,所以myInt1 == myInt2
返回false
,或者计算机是否像你在纸上做数学一样比较它并返回true
?
问问题
24 次
3 回答
0
这将完全取决于所讨论的计算机语言,并且(在前缀 0 的特定情况下,如此处所示)取决于 - 的特定值n
- 至少就 和 是否n
相同0n
而言。
也就是说,对于绝大多数编程语言,数字的处理方式与字符串的处理方式截然不同,如果有几种方法可以表达整数“二”的概念,它们通常都是等价的。这并不是说它们是相同2
的2.0
:在许多语言中它们是完全不同的。
于 2013-10-27T04:20:01.240 回答
0
这取决于语言的语法和语义是如何定义的。
您尚未指定您正在谈论的语言,但在大多数现代语言中,数值用于比较。所以你通常会期望得到true
你的例子。
于 2013-10-27T04:20:12.323 回答
0
正如其他人所评论的那样,这完全取决于上下文和语言。它还取决于数据类型(int, float, double
某些语言有其他语言,如Decimal
,NSNumber
等)。
在Objective-C
中,如果你将两个NSNumber
s 与进行比较==
,它通常会返回 false,因为NSNumber
它是一个对象,在这种情况下,与==
比较内存地址,所以它通常会返回false
。
但就int
? 在大多数情况下,即使您有一行代码显示int myNum = 002;
,该语言也可能不关心前导零。前导零可能只是格式化输出的问题。例如,printf("%03d",myNum)
与printf("%d",myNum)
.
于 2013-10-27T04:26:12.070 回答