본문 바로가기

자바스크립트/기초

Number()&parseFloat() & parseInt()

Number() - 문자열을 숫자로 바꾸는 함수, 만약 인수를 형변환 할 수 없다면 NaN을 리턴

Number('123') // 123
Number('+123') // 123
Number('1.23') // 1.23
Number('-1.23') // -1.23

Number(null) // 0
Number('') // 0

Number('5000won') // NaN
Number('bryan') // NaN

parseFloat() - 문자열을 실수로 바꾸는 함수

실수: 유리수와 무리수를 통틀어서 실수라고 한다. (4/7, 8/9 등은 정수가 아니고, +9, -5, 0 등이 정수)

유리수: 분자와 분모가 모두 정수인 분수로 나타낼 수 있는 수로 양수(+), 0, 음수(-)가 모두 포함된다. (쉽게 모든 수가 포함된다고 생각하면 됨)

정수가 아닌 유리수: 얖에서 말한 자연수가 아닌 분수, 소수(0.1, 0.2 등등)을 말함. (4/7, 0.3, 0.8 등등)

무리수: 실수 중에서 유리수가 아닌 수. 

자연수: 양의 정수를 말하므로, 0은 자연수가 아니다.

 

문법

parseFloat( string )

* 문자열 인자(숫자 + 문자)를 받는다.

* 그 인자를 parse(해부하다, 품사문법적 관계를 설명하다)한다.

* 부동 소수점 숫자(float point number)를 반환한다.

* 수로 시작할 때 그 수를 실수로 바꾼다.

* 띄어 쓰기로 여러 개의 수가 있으면 첫번째 수만 바꾼다.

* 공백으로 시작하면 공백은 무시한다.

* 수가 아닌 문자로 시작하면 NaN을 반환.

 

예제

parseFloat( '12.34' ) // 12.34
parseFloat( ' 12.34' ) // 12.34
parseFloat( '12.34 56.78' ) // 12.34
parseFloat( 'A 12.34' ) // NaN

parseFloat('08') // 8
parseFloat('-421') // -421

parseFloat('421') // 421
parseFloat('+421') // 421

parseFloat('21000won') // 21000

parseFloat('2.34') // 2.34

parseFloat(null) // NaN

parseInt() - 문자열을 정수로 바꾸는 함수

정수: 정수는 +,- 가 붙은 모든 자연수이다. 그런데 0도 포함된다.

 

문법

parseInt( string, n )

* 문자열 인자(숫자 + 문자)를 받는다.

* 그 인자를 parse(해부하다, 품사문법적 관계를 설명하다)한다.

* integer(정수) 또는 NaN을 리턴한다.

* string을 n진법일 때의 값으로 바꾼다. n은 옵션으로 2부터 36까지 입력가능. 입력하지 않으면 자동으로 10으로 처리

* string의 처리는 parseFloat()과 거의 같다.

* 소수 부분은 버린다.

* 0x로 시작하면 16진법으로 처리한다.

 

예제

* parseInt('100',2) : 100은 2진법으로 4이다.

* parseInt('0x100') : 100은 16진법으로 256이다.

parseInt( '12.68' ) // 12
parseInt( '100', 10 ) // 100
parseInt( '100', 2 ) // 4
parseInt( '0x100' ) // 256

parseInt('08') // 8   
parseInt('-421') // -421
parseInt('+421') // 421
parseInt('421') // 421

parseInt('21000won') // 21000

parseInt('2.34') // 2

parseInt(null) // NaN

parseInt()와 parseFloat의 공통점

* Number()와 달리, 일반 문자를 무시하고 숫자만 반환된다.

let won = '2000won'

console.log(Number(won)); // NaN
console.log(parseInt(won)); // 2000
conosle.log(parseFloat(won)); // 2000

parseInt()와 parseFloat의 차이점

* 소수 점 뒤의 수를 무시하는지 안하는지의 차이

let decimalNum = 3.34
let strDecimalNum = '3.34'

console.log(parseInt(decimalNum)) // 3
console.log(parseInt(stringDecimalNum)) // 3

console.log(parseFloat(decimalNum)) // 3.34
console.log(parseFloat(strDecimalNum)) // 3.34
반응형

'자바스크립트 > 기초' 카테고리의 다른 글

객체(Object)  (0) 2021.05.26
배열  (1) 2021.05.25
operators 오답노트  (1) 2021.05.23
형 변환  (1) 2021.05.23
alert, prompt, confirm을 이용한 상호작용  (1) 2021.05.23