자바 스크립트 수학 객체 메소드-음수를 0으로


87

Javascript에서 음수를 0으로 설정하는 방법을 찾을 수 없습니까?

-90이 0이 됨
-45가 0이 됨 0이
0이 됨
90이 90이 됨

그런 건 없나요? 반올림 된 숫자가 있습니다.

답변:


180

그냥하세요

value = value < 0 ? 0 : value;

또는

if (value < 0) value = 0;

또는

value = Math.max(0, value);

2
빠른 JSPerf는 value = value <0? 0 : 값; is on top jsperf.com/negatives-to-zero
Skeep

21
나는 등 Math.max한 가장, 그것은 단지 참조가 필요하기 때문에 value일단
매트 플레처

60

나는 당신이 사용할 수 있다고 생각합니다 Math.max().

var num = 90;
num = Math.max(0,num); // 90

var num = -90;
num = Math.max(0,num); // 0

3
이것은 제 생각에 받아 들여진 대답이어야합니다. 그냥 :) ... 말
ksugiarto

2
한 가지 유념해야 할 것은 둘 것입니다 Math.max(0, NaN)Math.max(0, undefined)반환 NaN당신이이 라인을 따라 뭔가를 할 수 있도록 :Math.max(0, num) || 0
jwerre

7

똑똑해지고 싶다면 :

num = (num + Math.abs(num)) / 2;

그러나 Math.max조건부 연산자가 훨씬 더 이해하기 쉽습니다.
또한 이것은 많은 수에 대한 정밀도 문제가 있습니다.


4
Math.positive = function(num) {
  return Math.max(0, num);
}

// or 

Math.positive = function(num) {
  return num < 0 ? 0 : num;
}

0은 양수도 음수도 아닙니다. 그에 따라 함수의 이름을 바꿔야합니다
Killy



-1

이러한 함수가 네이티브 Math 개체에 존재한다고 생각하지 않습니다. 필요한 경우 함수를 채우는 스크립트를 작성해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.