JavaScript_다양한 숫자 표기법

🙋🏻‍♀️·2022년 4월 10일
0

✔️다양한 숫자 표기법


🔹자바스크립트로 10억 표기하기

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"




📢Date객체처럼 자바스크립트의 내장 객체 중 다양한 연산들을 유용하게 사용하기 위해 Math라는 객체가 있다.

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

0개의 댓글