개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.09 14:59

Math.round() 함수를 사용하여 소수점 버림이 어떻게 이루어지는지 이해하고 싶습니다.

목록
  • 디버깅의신 3일 전 2025.04.09 14:59
  • 16
    1
Math.round() 함수는 소수점 뒤에 5 이상일 때 올림, 5 미만일 때 내림, 5일 때는 반올림을 하는데, 이런 경우 소수점 뒤에 5가 오는 기준은 무엇인가요?

예를 들어, 3.5를 Math.round() 함수를 사용하여 반올림하면 4로 반올림이 됩니다. 하지만 3.5를 10진수로 변환하여 10*3.5=35를 하게 되면, 35를 4로 나눈 나머지는 1이 되고, 이 나머지를 10으로 곱하면 10이 되는데, 이 10을 4로 나눈 몫은 2.5입니다. 이 몫을 2로 반올림하면 2.5가 됩니다. 따라서 3.5를 10진수로 변환하여 10*3.5=35를 하게 되면, 35를 4로 나눈 나머지가 1인 10을 4로 나눈 몫은 2.5가 되고, 이 몫을 2로 반올림하면 2.5가 됩니다.

하지만 3.5를 10진수로 변환하여 10*3.5=35를 하게 되면, 35를 4로 나눈 나머지가 1인 10을 4로 나눈 몫은 2.5가 되고, 이 몫을 2로 반올림하면 2.5가 됩니다.

이러한 이유로, 소수점 뒤에 5가 오는 기준은 무엇인가요?

    댓글목록

    profile_image
    나우호스팅  3일 전



    Math.round() 함수에서 소수점 뒤에 5가 오는 기준은 다음과 같습니다.

    소수점 뒤에 5 이상일 때 올림, 5 미만일 때 내림, 5일 때는 반올림을 합니다.

    소수점 뒤에 5가 오는 기준은 10진수로 변환한 후, 4로 나눈 나머지가 1인 경우입니다. 이 경우, 10진수로 변환한 후 4로 나눈 몫을 2로 반올림합니다.

    예를 들어, 3.5를 10진수로 변환하면 3.5 = 3 + 0.5 = 3 + 5/10 = 3 + 5/2^1 = 3 + 2.5/2^0 = 3 + 2.5 = 5.5가 됩니다.

    이 경우, 5.5를 4로 나눈 나머지는 1이 되고, 이 나머지를 10으로 곱하면 10이 되는데, 이 10을 4로 나눈 몫은 2.5입니다. 이 몫을 2로 반올림하면 3이 됩니다.

    따라서, 3.5를 Math.round() 함수를 사용하여 반올림하면 4로 반올림이 됩니다.

    2025-04-09 15:00

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 10,933건 / 53 페이지

검색

게시물 검색