JavaScript中是否有数学函数可以将数字转换为正数?


当前回答

如果你想写有趣的代码,没有人可以更新,试试这个:

~--x

其他回答

如果你想让这个数一直是正数你可以这样做。

function toPositive(n){
    if(n < 0){
        n = n * -1;
    }
    return n;
}
var a = toPositive(2);  // 2
var b = toPositive(-2); // 2

你也可以试试这个,但我不建议你这么做:

function makePositive(n){
    return Number((n*-n).toString().replace('-','')); 
}
var a = makePositive(2);  // 2
var b = makePositive(-2); // 2

这样做的问题是,你可以将数字更改为负数,然后转换为字符串,并从字符串中删除-,然后转换回int。我猜这比使用另一个函数需要更多的处理。

我已经在php中测试了这个,第一个函数更快,但有时JS会做一些疯狂的事情,所以我不能肯定。

unsigned_value = Math.abs(signed_value);

你可以使用~运算符,逻辑上将数字转换为负数,并在负数上加1:

Var x = 3; X = (~ X + 1); console.log (x) // result = -3

你可以用这个…

Math.abs(x)

Math .abs() | MDN

var posNum = (num < 0) ? num * -1 : num; // if num is negative multiple by negative one ... 

我觉得这个解决办法很容易理解。