【问题标题】:Is there a better way to convert negative numbers to positive in JavaScript? [duplicate]有没有更好的方法在 JavaScript 中将负数转换为正数? [复制]
【发布时间】: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


【解决方案1】:

是的,有一个更好的方法:Math.abs()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2011-03-28
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多