여기에 두 가지 질문이 있습니다.
어쨌든 누구나 부동 소수점 수학이 필요한 이유는 무엇입니까?
Karl Bielefeldt가 지적했듯이 부동 소수점 숫자를 사용하면 물리적 세계뿐만 아니라 비즈니스 및 금융과 같은 곳에서도 연속적인 수량을 모델링하여 모든 곳에서 찾을 수 있습니다.
필자는 프로그래밍 경력에서 화학, AutoCAD 작업, 재무 예측을 위해 Monte Carlo 시뮬레이터 작성 등 많은 분야에서 부동 소수점 수학을 사용했습니다. 실제로 David E. Shaw라는 이름의 한 사람이 부동 소수점 기반 과학 모델링 기법을 월스트리트에 적용하여 수십억 달러를 벌었습니다.
물론 컴퓨터 그래픽도 있습니다. 저는 사용자 인터페이스를위한 아이 캔디 개발에 대해 상담하고 있으며, 오늘날 부동 소수점, 삼각법, 미적분학 및 선형 대수학에 대한 확실한 이해없이이를 시도하는 것은 주머니칼로 총 싸움을하는 것과 같습니다.
왜 float 대 double이 필요 합니까?
IEEE 754 표준 표현으로, 32 비트 부동 소수점 10의 범위에서 7 개 소수점 정밀도의 숫자 및 지수에 대해 제공 -38 (10)에 (38) . 64 비트 double은 약 15 자리의 십진 정확도와 10 -307 ~ 10 307 범위의 지수를 제공합니다 .
누군가가 합리적으로 필요로하는 것이라면 float가 충분할 것 같지만 그렇지 않습니다. 예를 들어, 많은 실제 수량은 10 진수 7 자리 이상으로 측정됩니다.
그러나 더 미묘하게도 구어체 적으로 "라운드 오프 오류"라는 문제가 있습니다. 이진 부동 소수점 표현은 분수 부분에 1/2, 1/4, 3/4 등 2의 거듭 제곱 인 분모가있는 값에만 유효합니다. 1/10과 같은 다른 분수를 나타내려면 "라운드" 가장 가까운 이진 분수에 대한 값이지만 약간 잘못되었습니다. "반올림 오류"입니다. 그런 다음 그 부정확 한 숫자에 대해 수학을 수행하면 결과의 부정확성이 처음 시작한 것보다 훨씬 나빠질 수 있습니다. 때로는 오류 백분율이 곱해 지거나 기하 급수적으로 쌓일 수도 있습니다.
어쨌든, 이진 숫자가 많을수록 반올림 이진 표현이 표현하려는 숫자에 더 가까워 지므로 반올림 오류가 작아집니다. 그런 다음 수학을 할 때 작업 할 숫자가 많으면 누적 반올림 오류가 문제가되는 곳까지 쌓이기 전에 더 많은 작업을 수행 할 수 있습니다.
실제로, 십진수 15 자리로 된 64 비트 복식은 많은 응용 프로그램에 충분하지 않습니다. 1985 년에 80 비트 부동 소수점 숫자를 사용하고 있었으며 IEEE는 이제 128 비트 (16 바이트) 부동 소수점 유형을 정의합니다.