我正在寻找一种方法,给定 2 个浮点数 A 和 B 返回绝对值较低的值(A 或 B)。
最初我尝试过
Math.min(Math.abs(A),Math.abs(B));
但这是不正确的,因为例如对于 (-9,-2) 返回 +2 并且我正在寻找的返回值是 -2。
是否有一些本机/内置的?
我正在寻找一种方法,给定 2 个浮点数 A 和 B 返回绝对值较低的值(A 或 B)。
最初我尝试过
Math.min(Math.abs(A),Math.abs(B));
但这是不正确的,因为例如对于 (-9,-2) 返回 +2 并且我正在寻找的返回值是 -2。
是否有一些本机/内置的?
Math.abs(A) < Math.abs(B) ? A : B;
我不赞成对局部变量使用大写,但是
(Math.abs(A) < Math.abs(B)) ? A : B
Math.min()
返回传递给它的两个参数中的最小值。在上面的示例中,您为其提供了参数999
和2
(由Math.abs()
.
您可以将Math.min()
呼叫替换为以下内容:
Math.abs(A) < Math.abs(B) ? A : B;
val = (Math.abs(A) < Math.abs(B)) ? A : B;
嗯,这是一个正确的行为。
您将在 Min 函数中获得两个数字的绝对值,该函数返回两者的最小值。在您的情况下,这是 2,因为您正在比较 9 和 2。
编辑
AFAIK 没有内置的方法来做你想做的事。正如其他人所建议的那样,您必须自己进行比较,例如:
Math.abs(A) < Math.abs(B) ? A : B
请记住要小心您比较的类型和结果。