繁体   English   中英

在Javascript中获取数字的绝对值

[英]Get the absolute value of a number in Javascript

我想在 JavaScript 中获取数字的绝对值。 也就是说,放下标志。 我知道在数学上我可以通过对数字进行平方然后取平方根来做到这一点,但我也知道这是非常低效的。

 x = -25 x = x * xx = Math.sqrt(x) console.log(x)

JavaScript 中是否有一种方法可以简单地删除比数学方法更有效的数字符号?

你的意思是想得到一个数字的绝对值 Math.abs javascript 函数正是为此目的而设计的。

 var x = -25; x = Math.abs(x); // x would now be 25 console.log(x);

以下是文档中的一些测试用例:

Math.abs('-1');     // 1
Math.abs(-2);       // 2
Math.abs(null);     // 0
Math.abs("string"); // NaN
Math.abs();         // NaN

这是获取数字绝对值的快速方法。 它适用于每种语言:

 x = -25; console.log((x ^ (x >> 31)) - (x >> 31));

如果您想了解 JavaScript 如何在幕后实现此功能,您可以查看这篇文章。

博客文章

下面是基于chromium源代码的实现。

 function MathAbs(x) { x = +x; return (x > 0) ? x : 0 - x; } console.log(MathAbs(-25));

替代方案

Math.max(x,-x)

 let abs = x => Math.max(x,-x); console.log( abs(24), abs(-24) );

Rick 的答案也可以缩短为x>0 ? x : -x x>0 ? x : -x

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM