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