3

2つのfloatAとBが、絶対値の低い値(AまたはB)を返すメソッドを探しています。

最初に試しました

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

ただし、たとえば(-9、-2)の場合は+2を返し、探している戻り値は-2であるため、正しくありません。

そのためのネイティブ/ビルトインはありますか?

4

5 に答える 5

11
Math.abs(A) < Math.abs(B) ? A : B;
于 2012-08-09T17:08:21.090 に答える
7

ローカル変数に大文字を使用することは承認しませんが、

 (Math.abs(A) < Math.abs(B)) ? A : B
于 2012-08-09T17:10:22.370 に答える
5

Math.min()渡された2つのパラメーターの最小値を返します。999上記の例では、と2(によって生成される絶対値)の引数を指定していますMath.abs()

Math.min()呼び出しを次のようなものに置き換えることができます。

Math.abs(A) < Math.abs(B) ? A : B;
于 2012-08-09T17:08:20.883 に答える
4
val = (Math.abs(A) < Math.abs(B)) ? A : B; 
于 2012-08-09T17:10:09.017 に答える
2

まあ、それは正しい振る舞いです。

両方の最小値を返す最小関数内の両方の数値の絶対値を取得しています。あなたの場合、9と2を比較しているので、それは2です。

編集

AFAIKやりたいことをするための組み込みの方法はありません。他の人が示唆しているように、あなたは自分で次のようなものと比較する必要があります:

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

比較するタイプと結果に注意することを忘れないでください。

于 2012-08-09T17:07:54.917 に答える