billy
billy

Reputation: 1493

JavaScript: Why does a negative number return a positive?

Okay I wrote a simple function where if the number > 0 return it. And if number < 0 return -number (a negative)

In my test: when number < 0 it returns it as a positive number. Why?

numberFunc = function(number) {
  if (number > 0) return number;
  if (number < 0) return -number;
  return 0;
}

const result = numberFunc(-5);
console.log(result);

Upvotes: 1

Views: 271

Answers (2)

Magnus Melwin
Magnus Melwin

Reputation: 1517

Math.sign(number) - Use this Math function to determine whether a number is negative, positive or Zero. It will return either a 1, -1 or 0.

console.log(Math.sign(3));
// expected output: 1

console.log(Math.sign(-3));
// expected output: -1

console.log(Math.sign(0));
// expected output: 0

console.log(Math.sign('-3'));
// expected output: -1

Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign

Upvotes: 0

Robby Cornelissen
Robby Cornelissen

Reputation: 97130

Because, mathematically speaking, --1 = +1, so passing -1 into the line below will return 1.

if (number < 0) return -number;

You should just use Math.abs() instead of writing your own function though.

Upvotes: 8

Related Questions