Page 28 -
P. 28

try:
                   n = float(input('Enter a number: '))
                   print(f'n = {n}')
               except ValueError as e:
                   print('Hey! That's not a valid number!')

              또한, 부동소수점 계산은 정확하지 않다는 것도 기억해주세요. 이번 예제처럼

              단순하게 달리는 시간을 계산하는 경우에는 소수점 하나하나까지 정확할 필요
              가 없으므로 문제없지만, 과학 또는 경제 분야에서 계산할 때는 문제가 될 수
              있으므로 주의해주세요.

              부동소수점 계산이 정확하지 않다는 것이 무슨 의미인지 잘 모르겠다면 파이썬
              인터랙티브 셸에 0.1 + 0.2를 입력해보세요. 신기한 결과를 볼 수 있을 것입니
              다. 참고로 프로그래밍 언어에 따라서 이 결과에 약간씩 차이가 있습니다. 여러

              프로그래밍 언어에서 0.1 + 0.2의 결과가 어떻게 나오는지 정리해서 확인하고
              싶다면 http://mng.bz/6QGD를 참고해보기 바랍니다.

              계산을 정확하게 하기 위해서는 정수 계산을 하는 것이 좋습니다. 소수점 개수
              만큼 곱해서 소수점을 제거하고 정수 계산을 한 뒤, 소수점을 다시 붙여서 출력
              하는 코드를 활용하면 정확하게 계산할 수 있습니다.




                                 f-문자열로 소수점 형식 지정하기
                파이썬에서 부동소수점을 출력할 때는 f-문자열을 사용하는 것이 좋습니다. 기본적으로 파이
                썬은 부동소수점 계산이 정확하지 않아서, 0.1 + 0.7을 하면 0.79999… 등의 값이 나옵니다.
                 >>> s = 0.1 + 0.7
                 >>> print(s)
                 0.7999999999999999

                하지만 일반적으로 이런 결과를 원하지는 않을 것입니다. 따라서 f-문자열로 감싸고 소수점 출
                력을 제한해서 활용하는 것이 좋습니다.
                 >>> s = 0.1 + 0.7
                 >>> print(f'{s:.2f}')
                 0.80

                                                                      계속


          044




     파이썬_06.indd   44                                                      2021-11-18   오전 9:38:18
   23   24   25   26   27   28   29   30   31