05. 다섯 번째 수업: 과학적 표기법 (Scientific Notation)

태양의 질량은 우주적으로 무겁고, 바이러스의 크기는 원자적으로 작습니다. 이러한 극단적인 숫자들을 $0$ 을 수십 개씩 나열하며 늘어놓는 것은 종이 낭비이자 혼란의 극치입니다. 또한 조금 전 챕터에서 배웠던 ‘어디까지가 유효숫자(측정 능력)인가?’를 완벽하게 증명하기 위해, 공학자들은 새로운 표기법 표준을 창조했습니다.


1. 과학적 표기법: $a \times 10^n$

이 표기법의 목적은 단 하나입니다. “가장 돋보이는 유효숫자만 1의 자리에 단독으로 세워두고, 나머지 자릿수 크기(Scale)는 곱하기 10의 거듭제곱($10^n$)으로 짬처리하자!”

[핵심 규칙]

  1. 앞의 숫자 $a$ 는 무조건 $1$ 이상 $10$ 미만의 소수로 만들어야 합니다. (예: $3.14$, $5.0$)
  2. 뒤의 $10^n$ 부분은 오직 $0$ 의 갯수(단위 스케일)만 밀고 당기며 조절합니다.

[예시: 거대한 숫자 압축] 우주의 나이가 대략 $13,800,000,000$년.

  1. 맨 앞자리 숫자가 $1$이 되도록 소수점을 제일 왼쪽으로 옮겨 박습니다: $1.38$ (이제 이 $1.38$ 이 여러분이 잰 유효숫자 3개입니다.)
  2. 원상복구 하려면 소수점을 오른쪽으로 $10$번 튕겨야 합니다.
  3. 결과: $1.38 \times 10^{10}$ 년

[예시: 미세한 숫자 압축] 세균의 크기가 대략 $0.0000045\text{m}$.

  1. 맨 앞 유효숫자가 드디어 $4$ 가 나타났으므로 소수점을 그곳에 박습니다: $4.5$ (유효숫자 2개 확정)
  2. 원상복구 하려면 소수점을 왼쪽(마이너스)으로 $6$칸 후진해야 합니다.
  3. 결과: $4.5 \times 10^{-6}\text{m}$

2. 모호한 유효숫자의 구원자

“관중이 약 $4500$명이다.” 이 숫자를 보면 100명 단위에서 반올림한 건지, 10명 단위에서 반올림한 건지 유효숫자의 경계가 매우 헷갈립니다. (유효숫자가 $2$개인지 $3$개인지 $4$개인지 모름)

하지만 과학적 표기법을 쓰면 이것이 완벽하게 증명방어 됩니다.

  • $4.5 \times 10^3$ $\rightarrow$ “난 $4, 5$ 까지만 확신할 수 있어. (유효숫자 $2$개)”
  • $4.50 \times 10^3$ $\rightarrow$ “난 그 뒤의 $0$(10 십의 자리)까지 확실하게 눈금 쟀어! (유효숫자 $3$개)”

3. 파이썬과 E-표기법 (Exponential Notation)

프로그래머들이 모니터 화면에서 위첨자 $10^6$ 같은 걸 칠 수 없기 때문에, 컴퓨터 세계에서는 곱하기 10을 알파벳 e (또는 E)로 바꿔서 적는 국제 룰(E-notation)을 씁니다!

# [Python] 거대한 우주를 컴퓨터 화면에 우겨넣는 E 표기법
mass_of_earth = 5970000000000000000000000 # 5.97 요타그램

print("파이썬은 숫자가 무지막지하게 길면 자동으로 E-표기법으로 납작하게 압축합니다.")
# float() 강제치환으로 컴퓨터의 소수점 엔진을 깨워봅시다.
print(f"지구의 질량 (float): {float(mass_of_earth)}")

# E 표기법을 직접 변수에 담고 계산하기
# e 뒷부분은 "소수점을 오른쪽으로 몇 칸 밀까요?" 라는 뜻입니다.
virus_size = 4.5e-6 # 4.5 폰토미터 (소수점 왼쪽으로 6번 튕김)
print(f"\n바이러스 크기 (E표기법 적용): {virus_size}")
print(f"바이러스 크기 (일반 float 열방향): {virus_size:.7f}")

# 포맷팅을 이용해 일반 숫자를 강제로 E 표기(과학적 스펙)로 뽑아내기
normal_num = 12345.678
print(f"\n12345.678 을 과학적 표기법으로: {normal_num:e}") 
# 결과: 1.234568e+04 -> 1.234568 * 10^4

[실행 결과]

파이썬은 숫자가 무지막지하게 길면 자동으로 E-표기법으로 납작하게 압축합니다.
지구의 질량 (float): 5.97e+24

바이러스 크기 (E표기법 적용): 4.5e-06
바이러스 크기 (일반 float 열방향): 0.0000045

12345.678 을 과학적 표기법으로: 1.234568e+04

e 기호 하나만 알면 앞으로 어떤 게임 엔진이나 AI 모델의 가중치 행렬 값(에러 손실값: Loss 1.4e-05)을 보더라도 전혀 당황하지 않고 0.000… 사이즈를 가늠할 수 있습니다.

우리는 측정의 한계(유효숫자)와 그 한계를 예쁘게 포장하는 법(E표기법)까지 배웠습니다. 이제 대단원의 마지막 챕터, 이 모든 불완전한 소수점들을 파이썬으로 지배하는 법을 실전 코드로 검증합시다!

서브목차