개발자

금액과 같이 숫자를 POST요청 보낼때

2024년 04월 12일조회 159

자바스크립트 환경이고 Number 타입을 post 요청으로 보내는 상황입니다. 숫자 20자리를 넘어가면 지수표기법(예를 들어, 1.21e+25)로 바뀌어서 서버단에서 유효하지 않은 정수라고 오류가 났습니다 이런 큰 숫자의 경우에는 문자열로 다루는 게 더 좋은가요? 어떻게 다루시는지 궁금합니다

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

안희수님의 프로필 사진

쉼표 찍은 문자열로 받아서 파싱하시면 될것 같습니다 https://computer-science-student.tistory.com/m/718

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 04월 12일

매우 큰 숫자를 처리할 때에는 문자열로 변환하여 POST 요청을 보내는 것이 좋습니다. JavaScript에서는 15자리 이상의 숫자를 안전하게 처리하는 데 어려움이 있습니다. 이는 JavaScript에서 Number 타입이 IEEE-754 표준을 따르며, 이 표준은 53비트의 정밀도만을 제공하기 때문입니다. 따라서 아주 큰 숫자를 서버에 전송하려면 다음과 같은 방법으로 할 수 있습니다: 1. 클라이언트 쪽에서 숫자를 문자열로 변환한 후 서버에 POST 요청을 보낼 수 있습니다. 2. 또한, 서버 측에서 문자열을 다시 숫자로 변환할 수 있는 로직이 필요합니다. 그외에도 많은 프로그래밍 언어들은 매우 큰 정수 값을 "BigInt"와 같은 별도의 데이터 타입으로 처리하는 기능을 제공합니다. JavaScript도 ES2020부터 BigInt라는 새로운 내장 객체를 도입해 이 문제를 해결했습니다. 하지만 여전히 모든 환경에서 지원되지 않기 때문에 호환성 문제가 발생할 가능성이 있습니다. 따라서 일반적인 웹 애플리케이션에 대해서는 위의 문자열 변환이 가장 신뢰할 수 있는 방법일 것입니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!