#18 자바스크립트 숫자 처리

2023. 4. 17. 13:31자바스크립트

반응형

1. 숫자 형태 변환
parseInt() 함수를 사용하여 문자열을 정수형으로 변환할 수 있다.

parseInt() 몇가지 예
가) 기본적인 예시

const str = "123";
const num = parseInt(str);
console.log(num); // 123

나) 문자를 각각의 진수로 변환

const str = "1010";
const num1 = parseInt(str, 2); // 2진수로 해석
const num2 = parseInt(str, 8); // 8진수로 해석
const num3 = parseInt(str, 16); // 16진수로 해석
console.log(num1); // 10
console.log(num2); // 520
console.log(num3); // 4112

다) 음수,양수 표현

const str1 = "123";
const str2 = "-456";
const num1 = parseInt(str1); // 양수
const num2 = parseInt(str2); // 음수
console.log(num1); // 123
console.log(num2); // -456

라) 숫자와 숫자가 아닌 문자가 같이 포함된 예

const str1 = "123abc";
const str2 = "abc123";
const num1 = parseInt(str1); // 문자열이 숫자로 시작하므로 "123"으로 변환
const num2 = parseInt(str2); // "abc123"은 숫자가 아니므로 NaN 반환
console.log(num1); // 123
console.log(num2); // NaN


parseFloat() 함수를 사용하여 문자열을 부동 소수점 수로 변환할 수 있다.

parseFloat() 예시

let num1 = parseFloat("3.14"); // num1의 값은 3.14입니다.
let num2 = parseFloat("10"); // num2의 값은 10입니다.
let num3 = parseFloat("2.718abc"); // num3의 값은 2.718입니다.
let num4 = parseFloat("abc"); // num4의 값은 NaN입니다.

추가설명
num1은 문자열 "3.14"를 부동 소수점 숫자 3.14로 변환
num2는 문자열 "10"을 부동 소수점 숫자 10으로 변환
num3은 문자열 "2.718abc"를 부동 소수점 숫자 2.718로 변환
num4는 문자열 "abc"를 숫자로 변환할 수 없으므로 NaN(Not a Number)이라는 특수한 값으로 설정됨


2.숫자 포멧
toLocaleString() 숫자와 날짜를 각각 지역화된 문자열로 변환해줍니다. 숫자의 경우, 천 단위마다 구분 기호를 추가하고, 날짜의 경우 지역에 맞는 형식으로 날짜와 시간을 표시합니다.
예시)

const number = 1234567.89;
console.log(number.toLocaleString()); // "1,234,567.89"
//위 예시는 숫자를 천 단위마다 구분 기호를 추가

const date = new Date();
console.log(date.toLocaleString()); // "5/3/2023, 1:23:45 PM" (영미권)
// 위 예시는 인자가 없을 때 영미 기준으로 출력된다.

console.log(date.toLocaleString('zh-CN')); // "2023/5/3 下午1:23:45" (중국)
//위의 예시에서는 인자로 'zh-CN'을 전달하여 중국어 지역에 맞게 문자열을 출력하도록 설정

toFixed()는 숫자를 문자열로 반환하며, 소수점 이하 자릿수를 지정할 수 있습니다.

toFixed()예시

가) 소수점 이하 2자리로 반올림된 문자열로 변환

const num = 3.14159;
const numStr = num.toFixed(2);
console.log(numStr); // "3.14"

나) 소수점 이하 30자리로 변환하려고 했지만, 최대 20자리까지만 변환됨

const num = 1.123456789012345678901234567890;
const numStr = num.toFixed(30);
console.log(numStr); // "1.1234567890123456789012345679"



3.산술 연산
자바스크립트에서는 일반적인 산술 연산을 지원합니다. 
더하기(+), 빼기(-), 곱하기(*), 나누기(/) 등의 연산을 수행할 수 있다.

 
4. 숫자 비교 연산자
> : 크다(보다 크다)를 나타냅니다.
< : 작다(보다 작다)를 나타냅니다.
>= : 크거나 같다를 나타냅니다.
<= : 작거나 같다를 나타냅니다.
== : 같다를 나타냅니다. (타입은 비교하지 않음)
=== : 같다를 나타냅니다. (타입도 비교함)
!= : 다르다를 나타냅니다. (타입은 비교하지 않음)
!== : 다르다를 나타냅니다. (타입도 비교함)

 

5. Math 함수
Math.abs(x) : 입력된 값 x의 절대값을 반환합니다.
Math.ceil(x) : 입력된 값 x보다 크거나 같은 최소의 정수를 반환합니다.
Math.floor(x) : 입력된 값 x보다 작거나 같은 최대의 정수를 반환합니다.
Math.round(x) : 입력된 값 x를 반올림하여 가장 가까운 정수를 반환합니다.
Math.max(x1, x2, ..., xn) : 입력된 값들 중에서 가장 큰 값을 반환합니다.
Math.min(x1, x2, ..., xn) : 입력된 값들 중에서 가장 작은 값을 반환합니다.
Math.pow(x, y) : x를 y번 거듭제곱한 값을 반환합니다.
Math.sqrt(x) : 입력된 값 x의 제곱근을 반환합니다.
Math.random() : 0 이상 1 미만의 무작위 실수를 반환합니다.
Math.sin(x) :입력된 값 x의 사인 값을 반환합니다.
Math.cos(x) : 입력된 값 x의 코사인 값을 반환합니다.
Math.tan(x) :입력된 값 x의 탄젠트 값을 반환합니다.

Math() 몇 가지 예)
가) 랜덤 숫자 생성

// 0 이상 1 미만의 난수 생성
const randomNum = Math.random();

// 0 이상 10 미만의 정수 생성
const randomInt = Math.floor(Math.random() * 10);

console.log(randomNum); // 0.123456789 등등
console.log(randomInt); // 0부터 9까지의 정수 중 하나
추가설명 : 위 예시는 Math.random()이 반환하는 실수값을 정수로 변환하고, 0 이상 10 미만의 정수 중 하나를 생성하도록 설정하였습니다. Math.random()은 매번 다른 값을 반환하므로, 실행할 때마다 결과가 달라질 수 있습니다.

나) 최대값/최소값 구하기

// 배열에서 최대값 구하기
var numbers = [5, 8, 2, 10, 3];
var maxNum = Math.max(...numbers);
console.log(maxNum); // 10

// 배열에서 최소값 구하기
var minNum = Math.min(...numbers);
console.log(minNum); // 2

다) 제곱근 구하기

var num = 25;
var sqrtNum = Math.sqrt(num);
console.log(sqrtNum); // 5

라) 반올림, 올림, 내림

var floatNum = 3.14;

// 소수점 첫번째 자리에서 반올림
var roundNum = Math.round(floatNum);
console.log(roundNum); // 3

// 소수점 첫번째 자리에서 올림
var ceilNum = Math.ceil(floatNum);
console.log(ceilNum); // 4

// 소수점 첫번째 자리에서 내림
var floorNum = Math.floor(floatNum);
console.log(floorNum); // 3

반응형