2016-01-12 161 views
-1

我试图将JavaScript中的以下语句转换为C#, 但是在某一时刻,我收到以下错误“无法将类型'float'隐式转换为'bool'”。 任何人都可以指出我做错了什么。 谢谢。使用'%'时出现错误

//x offset for odd or even rows 

If((row + rowoffset) % 2) { 
    Debug.log(row+rowoffset); 
} 
+0

你能后的javascript代码吗? – Thomas

+0

模数运算符返回余数,它不是真或假。 if语句中需要true或false。 –

回答

3

在C#中的if语句,需要你的条件为真或假的为1或0您正在使用的代码是完全能够产生浮动。

更改代码类似下面,这取决于究竟你的代码做什么,但你可以做到这一点,只是检查并进行更改适当

If((row + rowoffset) % 2 == 0){ 

Debug.log(row+rowoffset); 

} 
+0

感谢它现在的工作。 – user3121949

+0

@ user3121949不客气:) – Umamaheswaran

0

在Javascript中,零等于假,但不是在C#:

你应该写这样的事情:

if((row + rowoffset) % 2 == 1){ 
    Debug.log(row+rowoffset); 
} 
0

上的浮点值进行取模函数将导致浮点值,而不是布尔值。我相信这会做你想要什么:

if((row + rowoffset) % 2 != 0){ Debug.log(row+rowoffset); }

+0

所选答案实际上反转了测试的逻辑,给出的结果与原始代码不同。其他两个答案中给出的检查应该是!= 0或== 1。 –