使用'%'时出错

时间:2016-01-12 03:17:25

标签: javascript c# unity3d

我正在尝试将以下使用JavaScript的语句转换为C#, 但有一次我得到了以下错误“无法隐式地将类型'float'转换为'bool'”。 任何人都可以指出我做错了什么。 感谢。

//x offset for odd or even rows

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

3 个答案:

答案 0 :(得分:3)

在C#中,if语句要求条件为true或false,即1或0.您使用的代码完全能够生成浮点数。

更改您的代码,如下所示,这取决于您的代码究竟是做什么的,但您可以这样做,只是为了检查并做出适当的更改

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

Debug.log(row+rowoffset);

}

答案 1 :(得分:0)

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

你应该这样写:

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

答案 2 :(得分:0)

对浮点值执行模数函数将产生浮点值,而不是bool。我相信这会做你想要的:

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