Java:绝对值的最大值和最小值

时间:2012-08-09 17:03:40

标签: java

我正在寻找一种方法,给出2个浮点数A和B返回绝对值较低的值(A或B)。

最初我试过

Math.min(Math.abs(A),Math.abs(B)); 

但它不正确,因为例如(-9,-2)返回+2并且我正在寻找的返回值是-2。

是否有一些原生/内置?

5 个答案:

答案 0 :(得分:10)

Math.abs(A) < Math.abs(B) ? A : B;

答案 1 :(得分:6)

我不赞成对局部变量使用大写,但是

 (Math.abs(A) < Math.abs(B)) ? A : B

答案 2 :(得分:4)

Math.min()返回传递给它的两个参数中的最低者。在上面的示例中,您为其提供了9992的参数(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

请记住要小心你比较的类型和结果。