2つのfloatAとBが、絶対値の低い値(AまたはB)を返すメソッドを探しています。
最初に試しました
Math.min(Math.abs(A),Math.abs(B));
ただし、たとえば(-9、-2)の場合は+2を返し、探している戻り値は-2であるため、正しくありません。
そのためのネイティブ/ビルトインはありますか?
2つのfloatAとBが、絶対値の低い値(AまたはB)を返すメソッドを探しています。
最初に試しました
Math.min(Math.abs(A),Math.abs(B));
ただし、たとえば(-9、-2)の場合は+2を返し、探している戻り値は-2であるため、正しくありません。
そのためのネイティブ/ビルトインはありますか?
Math.abs(A) < Math.abs(B) ? A : B;
ローカル変数に大文字を使用することは承認しませんが、
(Math.abs(A) < Math.abs(B)) ? A : B
Math.min()
渡された2つのパラメーターの最小値を返します。999
上記の例では、と2
(によって生成される絶対値)の引数を指定していますMath.abs()
。
Math.min()
呼び出しを次のようなものに置き換えることができます。
Math.abs(A) < Math.abs(B) ? A : B;
val = (Math.abs(A) < Math.abs(B)) ? A : B;
まあ、それは正しい振る舞いです。
両方の最小値を返す最小関数内の両方の数値の絶対値を取得しています。あなたの場合、9と2を比較しているので、それは2です。
編集
AFAIKやりたいことをするための組み込みの方法はありません。他の人が示唆しているように、あなたは自分で次のようなものと比較する必要があります:
Math.abs(A) < Math.abs(B) ? A : B
比較するタイプと結果に注意することを忘れないでください。