【发布时间】:2015-05-16 00:07:44
【问题描述】:
问题:有些数字是正数,有些则不是。这是我将负数转换为正数并保持正数不变的函数。在 JavaScript 中是否有更好的方法?
function intAbs(integer) {
if(isNaN(integer)) {
throw 'NaN';
}
if(parseInt(integer, 10) !== integer) {
throw 'Not an integer';
}
n = integer * integer;
var x = 1;
var e = 1;
while(!(e < 0.1 && e > -0.1)) {
x = (n / x + x) / 2;
e = n - x * x;
}
return parseInt(x);
}
更新:我不认为this question 是重复的。我知道如何在没有Math.abs() 的情况下获得整数的绝对值。你可以在这个问题中看到。我已经接受了 “是的,有更好的方法” 的答案,这并不模棱两可。
更新#2:此问题被标记为与Get the absolute value of a number in Javascript 重复,但这并不能解决问题if(is there a better way of calculating abs than exactly this algorithm)。我放弃了。
【问题讨论】:
-
Math.abs(whatever)有什么问题? -
如果要关闭我不会接受。
-
显然,发帖者只想要求整数参数。
-
你是要对数字求平方,然后用巴比伦方法取平方根吗?这是一种令人惊讶的迂回方式。
-
既然您改变了问题,还有一个更好的方法:
-number。你能想清楚这个问题是关于什么的吗? 编辑:啊。
标签: javascript algorithm