我希望你能提供一个方法,输入两个浮点数A和B,返回绝对值较小的值(A或B)。
最初我尝试了以下方法:
Math.min(Math.abs(A),Math.abs(B));
但这是不正确的,因为例如对于(-9,-2),返回值是+2,我需要的返回值是-2。
是否有一些本地/内置的方法可以实现这个?
我希望你能提供一个方法,输入两个浮点数A和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()
返回两个参数中的最小值。在上面的示例中,您提供了999
和2
作为参数(由Math.abs()
生成的绝对值)。
您可以将Math.min()
调用替换为以下内容:
Math.abs(A) < Math.abs(B) ? A : B;
val = (Math.abs(A) < Math.abs(B)) ? A : B;
嗯,这是正确的行为。
你在Min函数内获取了两个数字的绝对值,该函数返回两个数字中的最小值。在你的情况下,这是2,因为你正在比较9和2。
编辑
据我所知,没有内置的方法可以实现你想要做的事情。正如其他人建议的那样,你必须自己进行比较,例如:
Math.abs(A) < Math.abs(B) ? A : B
请记住,比较的类型和结果需要小心处理。
Math.abs
的作用。如果您只传入A
和B
,则会得到-2
。 - Alex W