5.2 실수 계산하기

1.5, 3.333333처럼 소수점이 붙은 수를 실수라고 하죠? 이번에는 실수끼리 계산을 해보겠습니다. >>>3.5 + 2.1를 입력해보세요.

>>> 3.5 + 2.1
5.6

덧셈의 결과인 5.6이 잘 나왔습니다. 이번에는 뺄셈, 곱셈, 나눗셈을 해보죠.

>>> 4.3 - 2.7
1.5999999999999996
>>> 1.5 * 3.1
4.65
>>> 5.5 / 3.1
1.7741935483870968

그런데 4.3 - 2.7의 결과가 좀 이상합니다. 1.6이 나와야 하는데 1.5999999999999996이 나왔습니다. 왜냐하면 컴퓨터는 실수를 표현할 때 오차가 발생하기 때문입니다.

오차 문제는 다소 어려운 주제이므로 지금은 크게 신경 쓰지 않아도 됩니다. 나중에 실무에서 실수를 다룰 때 오차에 대한 적절한 처리가 필요합니다. 자세한 내용은 '부록 ‎47.7 실수 값의 오차'를 참조하세요.

5.2.1 실수와 정수를 함께 계산하면?

지금까지 실수끼리 계산을 해보았습니다. 실수와 정수를 함께 계산하면 어떻게 될까요?

>>> 4.2 + 5
9.2

실수인 9.2가 나왔습니다. 실수와 정수를 함께 계산하면 표현 범위가 넓은 실수로 계산됩니다(실수가 정수보다 표현 범위가 넓습니다).

그림 5-2 표현 범위가 넓은 쪽으로 계산됨

5.2.2 값을 실수로 만들기

그럼 숫자 또는 계산 결과를 강제로 실수로 만들려면 어떻게 해야 할까요? 이때는 float에 괄호를 붙이고 숫자 또는 계산식을 넣으면 됩니다. 특히 float에 문자열을 넣어도 실수로 만들 수 있습니다. 단, 실수 또는 정수로 된 문자열이라야 합니다.

  • float(숫자)
  • float(계산식)
  • float('문자열')
>>> float(5)
5.0
>>> float(1 + 2)
3.0
>>> float('5.3')
5.3

float는 부동소수점(floating point)에서 따왔으며 값을 실수로 만들어줍니다. 즉, 실수는 float 자료형이며 type에 실수를 넣어보면 <class 'float'>가 나옵니다.

>>> type(3.5)
<class 'float'>
참고 | 복소수

파이썬에서는 실수부와 허수부로 이루어진 복소수(complex number)도 사용할 수 있습니다. 이때 허수부는 숫자 뒤에 j를 붙입니다(수학에서는 허수를 i로 표현하지만 공학에서는 j를 사용합니다).

>>> 1.2+1.3j
(1.2+1.3j)

두 실수를 복소수로 만들 때는 complex를 사용하면 됩니다.

>>> complex(1.2, 1.3)
(1.2+1.3j)
참고 | 스크립트 파일에서 계산 결과가 출력되지 않아요.

스크립트 파일에서 1 + 1처럼 계산식만 넣으면 결과가 출력되지 않습니다.

print_add.py

1 + 1

실행 결과

(아무것도 출력되지 않음)

스크립트 파일에서 계산 결과를 출력하려면 print 함수를 사용해야 합니다.

print_add.py

print(1 + 1)

실행 결과

2

파이썬 셸은 결과를 즉시 보는 용도라서 값 또는 계산식만 넣어도 결과가 출력됩니다. 하지만 스크립트 파일에서 값 또는 계산식의 결과를 출력하려면 반드시 print 함수를 사용해야 한다는 점 기억하세요.