[Python] round와 float
글을 쓰게된 이유
알고리즘 문제를 풀다가 분명 맞는 문제인데 제출을 하면 틀렸다고 나왔다. 여러번 봐도 알고리즘은 문제가 없었는데 틀리니까 정신이 혼미했다. 좌표계를 다루는 문제이기에 실수 연산에서 문제가 발생했다고 추측했지만 문제를 찾기가 어려웠다...
한참을 고민하다가 도움을 위해 질문 게시판을 쭉 돌아보니 출력을 format(num, '.2f')
로 바꾸라는 글을 보고 시도했더니 바로 성공했다. 원래는 round(num, 2)
를 썻다.
내가 알기로는 format
이나 round
나 같은 값이 나오는 걸로 알고 있었는데 잘못 알고 있었나 보다.
원인
해당 문제는 백준 1774번 우주신과의 교감으로 마지막 출력 조건이 매우 매우 중요했다.
출력
첫째 줄에 만들어야 할 최소의 통로 길이를 출력하라. 출력은 소수점 둘째짜리까지 출력하여라.
소수점 둘째자리까지 출력하라는게 꼭 2자리까지 출력해야함을 의미했던 것이다. float
값으로는 format
이나 round
로 만드나 같았지만 str
이기에 달랐다. 아래 코드와 같은 상황에서는 문제가 될 수 있다는 걸 알았다.
코드
target = 1.103
a = str(round(target,2))
b = format(target,".2f")
print(a)
print(b)
결과
1.1
1.10
느낀점
지문을 잘 읽자..... 완전 국어겜인데
Author And Source
이 문제에 관하여([Python] round와 float), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bluejoyq/Python-round와-float저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)