inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

4. 대표값 오류수정

10나누기와 0.1 곱하기의 차이 질문

823

코딩공부왕

작성한 질문수 4

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

round가 round half even 방식이라 짝수값에서 내림을 하는 것은 이해 했고 소수 첫째 자리에서 반올림 하고 싶으면 0.5를 더하고 int 로 감싸서 몫을 구하는 것을 이해했습니다.

 

소수 두 번째 자리도 시도해 보는 도중 정수에 10을 나누는 것과 0.1을 곱하는 것의 결과가 다르다는 것을 알게 되었습니다.

혹시 다른 이유가 무엇인지 알 수 있을까요?

python 코딩-테스트

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

질문하신 “정수에 10을 나누는 것과 0.1을 곱하는 것의 결과가 다른 이유”에 대해 설명드리겠습니다.

파이썬과 같은 프로그래밍 언어에서, 부동 소수점을 사용하여 실수를 표현할 때에는 정확한 값이 아닌 근사값으로 표현됩니다. 이 때문에 곱셈과 나눗셈 연산을 수행할 경우, 부동 소수점의 정밀도 문제로 인해 미묘한 차이가 발생할 수 있습니다.

정수를 10으로 나누는 작업은, 해당 정수를 10진법 기준으로 소수점 한 자리 아래로 내리는 깔끔한 연산입니다. 이에 반해, 0.1을 곱하는 작업은 10진법에서 깔끔하게 표현되지만, 컴퓨터가 사용하는 2진법에서는 정확하게 표현되지 않는 근사값을 사용합니다. 따라서, 이 과정에서 소수점 아래의 수가 미세하게 달라질 수 있으며, 이로 인해 최종 연산 결과에 차이가 발생할 수 있습니다.

이러한 부동 소수점 연산의 특성 때문에 프로그래밍을 할 때는, 특히 금융 계산 같이 정확한 값이 중요한 경우, 주의 깊게 로직을 구성해야 합니다. 가능하면 정수 연산을 사용하거나, decimal과 같은 정밀도가 더 높은 데이터 타입을 사용하는 것도 한 방법입니다.

이러한 내용은 기본적인 컴퓨터 과학 및 프로그래밍 원리와 연관되어 있으며, 이에 대해 더 자세히 알고 싶으시다면 관련 내용을 다루는 강의나 문서를 찾아보는 것을 추천드립니다.

도움이 되셨길 바랍니다.

기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.

1

77

2

스택에서 ')'을 만나는 경우

0

78

3

문제가 어디있나요?

0

66

2

변수 or 함수명

0

61

1

침몰하는 타이타닉 문제 질문입니다

0

56

1

AA.py 책점 에러

0

57

1

오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.

0

111

2

5.동전분배하기 문제 밑에코드도 정답이될까요?

0

110

1

아나그램 비교 코드

0

116

2

AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.

0

160

2

문제 링크가있나여?

0

147

2

채점기 Time Limit Exceeded 오류 문의

1

165

2

동적계획법은 사용하는 문제

0

126

2

제 코드 좀 봐주세요

0

148

1

예외가 존재할 가능성?

0

97

1

3번이 안풀립니다

0

93

0

5번 틀림

0

114

0

오류원인?

0

98

0

리스트 선언

0

106

1

침몰하는 타이타닉(그리디) 문제 질문

0

109

1

알고리즘

0

69

1

코딩테스트

0

92

1

DFS 순서 질문드립니다.

0

128

2

left, right를 사용한 풀이법에 대한 질문입니다

0

91

1