let millionaire = 1000000000; let myNumber = 1e9;//-->지수표기법. 오른쪽에 있는 수만큼 10의 거듭제곱을 곱하는 의미. console.log(millionaire); console.log(myNumber); console.log(millionaire === myNumber); // 1000000000 1000000000 true console.log(25e5 === 2500000); console.log(5.3e3 === 5300); console.log(-6.1e8 === -610000000); // 전부 true //오른편이 음수 = 이 숫자만큼 10의 거듭제곱으로 나누라는 의미 console.log(16e-5 === 0.00016); console.log(3.5e-3 === 0.0035); console.log(-9.1e-5 === -0.000091); // 전부 true
자바스크립트에서 자주 사용하는 두가지 숫자형 메소드를 알아보자.
1. toFixed( 0 ~ 100 )
: 소수 다룰때 사용. 파라미터로 숫자값을 전달해주면 그만큼 소수점 아래의
자릿수를 고정해주는 메소드. 범위는 0부터 100까지.
let myNumber = 0.3591; console.log(myNumber.toFixed(3)); //0.359 출력
let myNumber = 0.3591; console.log(myNumber.toFixed(7)); //"0.3591000" console.log(typeof myNumber.toFixed(3));//--> string 출력
파라미터로 전달하는 값이 숫자 값의 자릿수를 초과하는 경우에는 0으로 대체됨.
파라미터 7 기입하고 출력하면 0.3591000 출력. 7자리를 만들기 위해 부족한 자릿수를 0으로 채워넣음.
❗주의해야할 점은 계산된 값이 문자열이라서 더하기 연산 같은걸 한다면 문자열 연결이 되어버릴 수 있으니까 주의하기
그래서 메소드로 수정된 값을 숫자로 사용하고 싶을때는 Number함수를 이용해서 숫자형으로
형변환을 해줘야함.
let myNumber = 0.3591; console.log(Number(myNumber.toFixed(7))); // 0.3591 //숫자형으로 출력
⭐한가지 Tip
어떤 값 앞에 + (더하기기호) 붙여주면 Number함수와 똑같은 결과 얻을 수 있음.
let myNumber = 0.3591; console.log(+myNumber.toFixed(2)) //0.36 출력
2. toString( 2 ~ 36 )
: 파라미터로 전달하는 숫자의 진법으로 숫자를 변환해주는 메소드. 범위 2~36
let myNumber = 255; console.log(myNumber.toString(2)); console.log(myNumber.toString(8)); //-->결괏값들은 전부 문자열!! console.log(myNumber.toString(16)); // "11111111" "377" "ff"
❗❗❗
주의해야 할 점 짚고넘어가기
지금은 변수에 담에서 변수이름과 점 표기법으로 메소드를 사용하고 있지만
숫자에 바로 이 메소드를 사용할 수도 있는데 그냥 255를 적으면 에러 뜸.
정수에 바로 점을 찍게되면 점 표기법이 아니라 소수점으로 인식하기 때문.
그래서 정수형태의 숫자값에는 메소드를 사용할 때 반드시 점 두개를 사용해줘야함
가독성 있고 안전한 방법을 사용하기!
let myNumber = 255; console.log(255..toString(2)); console.log((255).toString(2)); //"11111111" "11111111"
Math객체의 다양한 메소드에 대해 살펴봅시다.
🔹절댓값 (Absolute Number)
학창 시절 수학 시간에서 배운 '절댓값(absolute value)' 기억하시나요?
간단하게 설명하자면, 어떤 값의 '양수(positive number)' 버전이라고 할 수 있습니다.
음수 -5의 절댓값은 양수 5고, 그냥 양수 5의 절댓값은 그대로 양수 5인 거죠.
Math.abs(x)를 하면 x의 절댓값이 리턴됩니다. console.log(Math.abs(-10)); console.log(Math.abs(10)); //10 10
🔹최댓값 (Maximum)
Math.max 함수에 파라미터로 여러 수를 넘겨주면, 그중 가장 큰 값이 리턴됩니다.
console.log(Math.max(2, -1, 4, 5, 0)); //5
🔹최솟값 (Minimum)
Math.min 함수에 파라미터로 여러 수를 넘겨주면, 그중 가장 작은 값이 리턴됩니다.
console.log(Math.min(2, -1, 4, 5, 0)); //-1
🔹거듭제곱 (Exponentiation)
'제곱'의 개념 기억하시나요? '2의 3승'(혹은 '2의 세제곱')을 하면, 2를 세 번 곱한다는 뜻입니다.
2 곱하기 2 곱하기 2'를 하면 8이죠? 마찬가지로 '5의 2승'을 하면, '5 곱하기 5'를 해서 25입니다.자바스크립트에서 Math.pow(x, y)를 하면 x의 y승의 결괏값이 리턴됩니다.
console.log(Math.pow(2, 3)); console.log(Math.pow(5, 2)); // 8 25
🔹제곱근 (Square Root)
'제곱근(square root)'은 '제곱'의 반대라고 생각할 수 있습니다.
5의 제곱이 25이기 때문에, 25의 제곱근은 5입니다. 7의 제곱이 49이기 때문에, 49의 제곱근은 7입니다.
Math.sqrt(x)를 하면 x의 제곱근이 리턴됩니다.
console.log(Math.sqrt(25)); console.log(Math.sqrt(49)); // 5 7
🔹반올림 (Round)
Math.round(x)를 하면 x의 반올림된 값이 리턴됩니다.
소수점 부분이 0.5 이상이면 가장 가까운 정숫값으로 올라가고, 소수점 부분이 0.5 미만이면 가장 가까운 정숫값으로 내려갑니다.
console.log(Math.round(2.3)); console.log(Math.round(2.4)); console.log(Math.round(2.49)); console.log(Math.round(2.5)); console.log(Math.round(2.6)); //2 2 2 3 3
🔹버림과 올림 (Floor and Ceil)
Math.floor(x)을 하면 x의 버림 값이, Math.ceil(x)을 하면 x의 올림 값이 리턴됩니다.
이 경우, 소수 부분이 얼마 인지와는 상관이 없습니다.
console.log(Math.floor(2.4)); console.log(Math.floor(2.49)); console.log(Math.floor(2.8)); console.log('-'); console.log(Math.ceil(2.4)); console.log(Math.ceil(2.49)); console.log(Math.ceil(2.8)); //2 2 2 - 3 3 3
✍️실습과제
재테크를 시작하기로 마음먹은 규재는 오늘 은행에서 2년 만기 적금을 들었습니다.
이자율이 4.3%고 세금은 내지않는 혜택도 받았는데요. 큰 맘 먹고 시작한 재테크인 만큼 매월 80만원씩 저축하기로 했습니다.그런데 막상 생각해보니 당분간 생활비가 빠듯할 것 같아서 60만원씩 저축할 껄 후회중인데요. 그래도 2년 뒤에 받게 될 금액으로 위안을 삼기 위해 적금 이자를 계산해주는 함수를 만들어보려고 합니다.
이자율(rate), 매월 납입 금액(payment), 납입 기간(term)을 파라미터로 전달하면, 만기 후 받게 될 이자를 출력해주는 interestCalculator 함수를 완성해 보세요.
n = 납입 개월 수
r = 이자율
v = 월 납입금
일 때,이자 금액은 다음과 같은 식으로 계산할 수 있다고 합니다.
interest = v n (n+1) / 2 * r / 12
코드를 잘 작성하셨다면, 다음과 같은 결과가 출력되어야 합니다.
860000
645000
// 여기에 코드를 작성해 주세요. function interestCalculator(rate, payment, term){ //(1)먼저 이자율(interest)이라는 변수를 만들고 우항에 식을 완성한다 //자 금액을 콘솔에 출력도 해야 하니깐, console.log 함수도 활용해서 이 변수를 출력해 줍시다. //그러면 860000 644999.9999999999 출력되는데 소수점을 남기지 않으려면 toFixed 메소드 사용 //toFixed는 문자열로 나오니까 숫자형으로 형변환 위해 맨 앞에 더하기 기호 붙여줌(+) let interest = +(payment*term*(term+1)/2*rate/12).toFixed; console.log(interest) } // 이율이 4.3%일 때 매월 80만원씩 24개월 납입할 경우 interestCalculator(0.043, 800000, 24); // 이율이 4.3%일 때 매월 60만원씩 24개월 납입할 경우 interestCalculator(0.043, 600000, 24); // 860000 645000