인프런 커뮤니티 질문&답변

민수 S님의 프로필 이미지
민수 S

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

1. 자리수의 합

Math.floor를 꼭 써주어야하는 이유가 궁금합니다.

작성

·

423

1

안녕하세요, 선생님. 수업 잘듣 고 있습니다!

다름이 아니오라, 처음에는 Math.floor를 안쓰고 그냥  tmp= tmp/10으로 했는데 답이 이상하게 나와 Math.floor를 써주니 답이 제대로 나오네요. C++ 에서는 자동으로 정수 몫이 나오는데 자바스크립트는 정수값을 나누는 경우도 항상 floor를 써주어야 하는 것인가요? 

답변 2

7

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

C++에서는 정수/정수를 하면  "/" 연산자가 몫을 구하는 연산자가 됩니다.

하지만 자바스크립트는 정수/정수에서 "/"연산자가 실수를 결과값으로 합니다.

예를 들어 128/10의 결과를 C++은 12로 해주지만 자바스크립트는 12.8로 해줍니다. 

그래서 자바스크립트에서는 Math.floor를 쓰거나 parseInt써서 12.8을 12로 만들어 주어야 합니다.

2

일단 이 곳은 강사님께 질문 올리는 곳이 아닌 , 네이버 지식인과 같은 개방형 게시판 입니다.

풀고 계신 문제가 무엇인지는 모르겠으나 tmp 배열에 "정수" 가 담겨있다고 하더라도 모든 값이 10의 배수가 아니라면 , 10으로 나눈 결과값은 정수가 아닐겁니다.

디버깅을 통해 tmp/10 의 값을 직접 확인해보시길 바랍니다.

뭐라는거야?

 

민수 S님의 프로필 이미지
민수 S

작성한 질문수

질문하기