[알고리즘] parseInt, parseFloat,toString

seo young park·2021년 12월 24일
0

알고리즘

목록 보기
3/3
post-thumbnail

JS100제 43번 문제
우리가 흔히 사용하는 숫자 1, 8, 19, 28893 등등...은 10진수 체계입니다.
이를 컴퓨터가 알아 들을 수 있는 2진수로 바꾸려고 합니다. 어떻게 해야할까요?
사용자에게 숫자를 입력받고 이를 2진수를 바꾸고 그 값을 출력해주세요

parseInt

parseInt(string)
parseInt(string,radix);


parseInt("11", 2);
3
parseInt("11", 10);
11

parseInt() 함수는 문자열 인자를 파싱하여 특정 진수의 정수를 반환.

string 문자열이 아닐 경우, toString 추상연산을 사용해 문자열로 반환

radix string 의 진수를 나타내는 2~36까지의 정수. 기본값이 10이 아님.

radix 가 2보다 작거나 36보다 큰 경우,
공백이 아닌 첫 문자를 숫자로 변환할 수 없는 경우 NaN을 반환

parseFloat()

parseFloat(string)

function circumference(r) {
  return parseFloat(r) * 2.0 * Math.PI;
}

console.log(circumference(4.567));
// expected output: 28.695307297889173

console.log(circumference('4.567abcdefgh'));
// expected output: 28.695307297889173

console.log(circumference('abcdefgh'));
// expected output: NaN

parseFloat() 함수는 주어진 값을 필요한 경우 문자열로 변환한 후 부동소수점 실수로 파싱해 반환

string 문자열이 아닐 경우, toString 추상연산을 사용해 문자열로 반환

반환값은 주어진 문자열에서 파싱한 부동소수점 실수

공백이 아닌 첫 글자를 숫자로 변환할 수 없는 경우 NaN을 반환

parseInt(),parseFloat() 공통점

  • 공백이나 문자를 만나면 무시
parseFloat("10 20 30");
// 10
parseInt("10 20 30");
// 10

parseInt("100 hello");
// 100
parseFloat("100 hello");
// 100
parseInt("hello 100");
// NaN
parseFloat("hello 100");
// NaN

parseInt(),parseFloat() 차이점

  • parseInt()은 정수를, parseFloat()는 부동소수점 실수를 반환
parseInt("123.45682");
123 // 정수반환
parseFloat("123.456823412");
123.456823412 //실수 반환

parseFloat().toFixed()

//toFixed(n)을 함께 사용하면 소수점 n째자리까지 표현

parseFloat("123.456823412").toFixed(3);
//'123.457'

(num).toString([radix])

(11).toString(2);
//'1011'

(11).toString();
// '11'

toString 은 메소드의 첫 번째 아규먼트를 파싱하여, 메소드는 특정 기수(radix)를 기준으로 한 진수 값의 문자열을 반환.
radix 값이 지정되지 않으면, 임의로 10진수로 가정

정리

//10진수를 다른 진수로 변환시킬 때
//number -> string
(11).toString(2);
//'1011'

다른 진수를 10진수로 변환시킬 때
parseInt("11",2);
//string -> number
// 3

문제풀이

const decimal = +prompt("10진수를 입력해주세요.");
const binary = (decimal).toString(2);
console.log(+binary);

출처: mdn

0개의 댓글