这些是问题:
为什么我不能乘以(1/2)但我可以乘0.5?如果我尝试第一个选项,它会认为它是0。
第二,这个if语句错了吗?
if (-1 < x < 0)
我发誓我已经在其他编程语言中完成了这项工作,但它不会在这里工作,所以我不得不改为if ((-1 < x) && (x < 0))
感谢您的时间。
答案 0 :(得分:1)
错误?编程错误。
整数师已经咬了你。使它达到1.0 / 2.0,你将得到你期望的0.5。
代码if (-1 < x < 0)
不正确。
答案 1 :(得分:0)
如果您编写1/2
,则以整数运算执行,因此等于0
。尝试乘以1.0/2.0
。
是的,如果语句错误(假设您要检查x
是否在-1到0的范围内)。
答案 2 :(得分:0)
您的程序在语法上不正确,因此它与Xcode无关。
1/2是整数除法,它将计算为截断的整数。所以floor(1/2)= 0且行为确实正确。
与if语句相同。 if(-1&lt; x&lt; 0)只是在语法上不正确。
答案 3 :(得分:0)
这与Xcode无关,而是与C语言有关。
第一个问题:
x * (1 / 2)
C编译器将1
和2
视为整数,并且在整数数学中,1/2 = 0.如果要将其乘以浮点数,则可以执行以下操作:
x * (1.0 / 2.0)
或
x * ((float) 1 / (float) 2)
在第二期中,编译器会将(-1 < x < 0)
解释为((-1 < x) < 0)
,这显然不是您想要的,因为(-1 < x)
将返回0表示false,或1表示true。要在C中执行复合逻辑语句,您需要使用&&
表示AND或||
表示OR:
((-1 < x) && (x < 0))