这是代码(JAVA):如果我不知道变量是否为正数/负数,如何在不调用函数或使用if的情况下使其变为正数?
float yd = waypointY - currentY;
if (yd < 0) {
yd = yd*(-1);
}
我不认为这是做到这一点的最好办法,并且已经搜查,但只发现当你已经知道,如果是阳性或阴性结果。我永远不知道waypointY是否比currentY更多或更少。
这是代码(JAVA):如果我不知道变量是否为正数/负数,如何在不调用函数或使用if的情况下使其变为正数?
float yd = waypointY - currentY;
if (yd < 0) {
yd = yd*(-1);
}
我不认为这是做到这一点的最好办法,并且已经搜查,但只发现当你已经知道,如果是阳性或阴性结果。我永远不知道waypointY是否比currentY更多或更少。
AFAIK,如果没有,这是不可能的。或者一些变化。也许得到符号位并乘以某些东西并添加一些内容并执行某些操作?这似乎太复杂了,任何特殊的原因,如果不使用?
编辑: 你可以使用一个三元(或任何它被称为)的表达:
x = y < 0 ? -y : y;
我只是想知道是否有更有效的方法来做到这一点。不过你的例子教会了我一些新的东西,谢谢。 :) – djokerndthief
如果使用java
,有一个API
就可以使用,Math.abs(x-y)
它将返回的绝对值x-y
并且如下ABS API的源码:
public static float abs(float a) {
return (a <= 0.0F) ? 0.0F - a : a;
}
但这意味着调用一个函数,它本质上不比简单的if语句更有效。正确? (我不确定) – djokerndthief
在大多数语言'if'不是一个功能。你有什么是一个很常见的模式。我不会为此担心。我可能会把它改成'yd * = -1;'如果我的语言支持它的话。 – John3136