0 이상의 두 정수가 문자열 a, b로 주어질 때, a + b의 값을 문자열로 return 하는 solution 함수를 작성해 주세요.
[조건]
1 ≤ a의 길이 ≤ 100,000
1 ≤ b의 길이 ≤ 100,000
a와 b는 숫자로만 이루어져 있습니다.
a와 b는 정수 0이 아니라면 0으로 시작하지 않습니다.
function solution(a, b) {
return String(parseInt(a) + parseInt(b));
}
: 챗지피티 도움을 받음
내가 푼 방법으로 풀었을 때 "18446744073709551615"를 parseInt("18446744073709551615")로 하게 되면 18446744073709552000를 반환했음
자바스크립트는 숫자를 나타내는 데이터 타입으로 64비트 부동 소수점(실수를 표현하는 방식)을 사용한다. 정수값을 정확하게 표현하는데 제한이 있다.
18446744073709552000는 64비트 부동 소수점으로 표현할 수 없는 큰 정수여서 parseInt로 문자열을 정수로 표현할 경우 정수 범위 내 근사값으로 변환이 됨.
따라서 매우 큰 정수를 다룰 때는 한 가지 대안으로 BigInt를 활용할 수 있음