JavaScript中是否有数学函数可以将数字转换为正数?
当前回答
对于函数式编程,Ramda有一个很好的方法。同样的方法也适用于从正到负,反之亦然。
https://ramdajs.com/docs/#negate
其他回答
如果你想让这个数一直是正数你可以这样做。
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会做一些疯狂的事情,所以我不能肯定。
乘以(-1)是将负数转换为正数的最快方法。但是你要小心,不要把我的错误的正数转换成负数!所以需要额外的检查…
那么数学。abs、数学。floor和parseInt是最慢的。
https://jsperf.com/test-parseint-and-math-floor-and-mathabs/1
负号(-)可以将正数转换为负数,也可以将负数转换为正数。X =-y是X =(y*-1)的视觉糖。
var y = -100;
var x =- y;
var posNum = (num < 0) ? num * -1 : num; // if num is negative multiple by negative one ...
我觉得这个解决办法很容易理解。
由负转正
var X = -10 ;
var number = Math.abs(X); //result 10
正转负
var X = 10 ;
var number = (X)*(-1); //result -10