codinghatso

숫자 표현과 숫자 변환 기초 본문

WEB/JavaScript

숫자 표현과 숫자 변환 기초

hatso 2022. 1. 10. 19:12

자바스크립트에는 원시 자료형 중 하나로 "숫자(Number)" 자료형을 제공합니다.

1234

-4567

0.234

2.345e6

과 같은 모든 숫자 표현을 말합니다. 다른 개발 언어의 정수형, 실수형, 부호 없는 정수형과 같은 세세한 숫자형의 구분 방식과 달리 자료형이 1개만 있습니다. 자바스크립트의 숫자형은 내부적으로 부호가 있는 64비트 부동소수점으로 저장됩니다.

비트 자릿수 표현
0~51 숫자(52비트)
52~62 지수(11비트)
63 부호표시(1비트)

그 외에 숫자형은 아니지만, 수적인 표현을 사용하기 위해 Infinity(무한), NaN(Not a Number)과 같은 숫자형을 보조하는 자료형이 있습니다.

연산을 하기 전에 숫자를 캐스팅(Casting)해서 정수와 실수를 구분해 사용할 수 있습니다.

 

parseInt(), parseFloat() 함수 등을 사용해 부동소수점 실수형과 정수형으로 변환할 수 있습니다.

두 함수는 파라미터 첫 번째 문자가 숫자인지를 판단하며, 숫자가 아니면 "NaN"을 반환합니다. 또 숫자와 문자가 혼용됐다면 숫자 부분까지 출력하고 나머지는 버립니다.

 

toFixed() 메서드를 사용해 소수점 자릿수를 제한한 문자열로 변환할 수 있습니다. 문자열로 결과 값을 반환한다는 것에 주의해야 합니다.

또, 음수의 경우에는 숫자형이 반환되기 때문에 숫자를 괄호로 감싸서 마이너스 부호 적용이 먼저 이루어지도록 해야 문자열을 반환합니다.

 

const num = 123.4567;

console.log(num.toFixed(2));	//'123.46'반환
console.log(num.toFixed(8));	//'123.45670000'반환
console.log(0.002345e2.toFixed(2));	//'0.23'반환
console.log(-3.141592.toFixed(2));	//-1*3.141592.toFixed(2)와 같으며, -3.14 실수값이 반환
console.log(-(3.141592).toFixed(2));	//'-3.14'문자열 반환

내림, 올림, 반올림, 버림

Math 객체의 전용 메서드 활용법.

기능 메서드 설명
내림 Math.floor() 내림 한 정수를 반환.
올림 Math.ceil() 올림 한 정수를 반환.
반올림 Math.round() 소수점 숫자가 가까운 쪽의 정수를 반환.
버림 Math.trunc() "truncation-자름"의 약자로

소수점 이하를 모두 버리고 정수형으로 변환합니다. 내림이나 올림과 달리 양수,음수 무관하게 소수점 이하를 무조건 버리고 정수 부분만 남깁니다.

음수는 더큰 음의 정수로(올림),양수는 더 작은 양의 정수(내림) 변환됩니다.
const num = 3.141592;
const minusnum = -3.6789;
const halfnum = 3.5;
const halfminusnum = -3.5;

/**
 * Math 메서드
 * floor() : 내림
 * ceil() : 올림
 * round() : 반올림
 * trunc() : 버림
 */
console.log(Math.ceil(num)); //4 반환
console.log(Math.ceil(minusnum)); //-3

console.log(Math.floor(num)); //3
console.log(Math.floor(minusnum)); //-4

console.log(Math.round(num)); //3
console.log(Math.round(minusnum)); //-4
console.log(Math.round(halfnum)); //4반환 3.5는 4에 더 가까움
console.log(Math.round(halfminusnum)); //-3반환 -3.5는 -3에 더 가까움

console.log(Math.trunc(num)); //3
console.log(Math.trunc(minusnum)); //-3

절댓값, 숫자의 부호를 얻기

숫자의 양수 음수를 처리하는 메서드는 2개가 있습니다.

사용 빈도도 높고, 고급스러운 코딩 기법을 구현하는데 자주 사용된다. 특히, 숫자의 부호를 알려주는 Math.sign() 메서드는 배열이나 집합의 개수를 세는데 유용하게 사용할 수 있습니다.

기능 메서드 설명
절대값 Math.abs() 숫자의 부호 없는 양의 숫자 값을 반환합니다.
부호 Math.sign() 숫자의 부호를 알려줍니다. 1,0,-1,NaN 중 하나를 결과 값으로 반환합니다.
양수이면 1,0이면0,음수이면-1이 됩니다. 파라메터가 숫자가 아닌 경우 NaN을 반환합니다.
/**
 * Math 메서드
 * abs() : 절대값
 * sign() : 부호   / 1,0,-1,NaN
 */

const num2 = -137;
console.log(Math.abs(num2)); //절대값 얻기

const arr = [-3, 2, -45, 0, 4, 7];

const arr2 = arr.map(function (x) {
  return Math.sign(x);
});
console.log(arr2);

'WEB > JavaScript' 카테고리의 다른 글

NaN와 Infinity  (0) 2022.01.10
JavaScript에는 -0 이 존재한다?  (0) 2022.01.10
JS 변수명 사용 규칙과 제약사항  (0) 2022.01.07
JS 변수 선언.내부구조  (0) 2022.01.07
변수 선언 방식 var, let, const 의 차이점  (0) 2021.08.27
Comments