我正在尋找一種給出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