我正在寻找一种给出2个浮点数的方法A和B以较低的绝对值返回值(A或B)。Java:最大值和最小值(绝对值)
起初我试图
Math.min(Math.abs(A),Math.abs(B));
,但它是不正确的,因为例如用于(-9,-2)返回+2,我期待的返回值为-2。
是否有一些本机/内置的?
我正在寻找一种给出2个浮点数的方法A和B以较低的绝对值返回值(A或B)。Java:最大值和最小值(绝对值)
起初我试图
Math.min(Math.abs(A),Math.abs(B));
,但它是不正确的,因为例如用于(-9,-2)返回+2,我期待的返回值为-2。
是否有一些本机/内置的?
Math.abs(A) < Math.abs(B) ? A : B;
(换句话说,可能没有内置的功能,并且它更容易实现) – 2012-08-09 17:08:55
嗯,这是一个正确的行为。
您将得到Min funcion中两个数字的绝对值,它们返回两者的最小值。在你的情况这2因为你比较9和2
编辑
AFAIK有没有内置的方式做你想做的事情。正如其他人所建议的那样,您必须使用类似的方法进行比较:
Math.abs(A) < Math.abs(B) ? A : B
只要记住要小心您比较的类型和结果。
我知道它的正确行为,我正在寻求一种内置的方式来实现我的初始目标 – Addev 2012-08-09 17:09:15
Math.min()
返回传递给它的两个参数中最小的一个。在上面的例子中,你向它提供的999
和2
参数(由Math.abs()
产生的绝对值
你可能喜欢的东西取代Math.min()
电话:
Math.abs(A) < Math.abs(B) ? A : B;
我不赞成使用局部变量的大写字母,但是
(Math.abs(A) < Math.abs(B)) ? A : B
呃,为什么会返回999? – 2012-08-09 17:05:51
该示例不正确,已更新 – Addev 2012-08-09 17:07:02
-2是正确的结果 – 2012-08-09 17:07:50