JavaScript中是否有数学函数可以将数字转换为正数?
当前回答
那么x *= -1呢?我喜欢它的简洁。
其他回答
我知道另一种方法。这个技巧从负到正,反之亦然
var x = -24;
var result = x * -1;
反之亦然:
var x = 58;
var result = x * -1;
住代码:
// NEGATIVE TO POSITIVE: ****************************************** var x = -24; var result = x * -1; console.log(result); // VICE VERSA: **************************************************** var x = 58; var result = x * -1; console.log(result); // FLOATING POINTS: *********************************************** var x = 42.8; var result = x * -1; console.log(result); // FLOATING POINTS VICE VERSA: ************************************ var x = -76.8; var result = x * -1; console.log(result);
如果你想让这个数一直是正数你可以这样做。
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会做一些疯狂的事情,所以我不能肯定。
Math.abs(x),或者如果你确定转换前的值是负的,只需在前面加上一个常规的负号:x = -x。
你可以用这个…
Math.abs(x)
Math .abs() | MDN
var posNum = (num < 0) ? num * -1 : num; // if num is negative multiple by negative one ...
我觉得这个解决办法很容易理解。