Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

책을 읽읍시다

누가 부동소수점에 대해 물어본다면 이렇게 답해야겠다. 본문

프로그래밍

누가 부동소수점에 대해 물어본다면 이렇게 답해야겠다.

근면한 거위 2025. 5. 31. 22:25

“우리가 쓰는 실수는 10진법 소수지만, 컴퓨터는 결국 2진법이니까 1/10 같은 것도 정확히 못 표현해. 대신 2의 음수 제곱 꼴, 예컨대 1/2, 1/4, 1/8 같은 건 가수부만 충분하면 오차 없이 딱 표현되지. 비트만 넉넉하면 무한히 정밀한 표현도 가능한 거지"

그리고 여기서 그러면 Decimal, BigInteger 같은 자료구조는 어떻게 구현되냐고 물어본다면

“결국 이건 하드웨어 vs 소프트웨어 트레이드오프야. float이나 double은 하드웨어에서 직접 연산을 지원하니까 빠르지만 정밀도에 한계가 있고, 반대로 Decimal이나 BigInteger는 연산 하나하나가 소프트웨어 레벨 구현이라 느리지만 정확도는 거의 무제한이지.”

“파이썬에서 Decimal은 decimal.Decimal 클래스로 구현돼 있고, BigInteger는 그냥 int 타입이 자동으로 확장돼. 자바나 C#은 BigInteger나 BigDecimal로 따로 제공하지만, 내부는 다 같은 아이디어야 — 문자열처럼 숫자 다루기.”