십진수를 이진수로 표현할 수없는 경우, 컴퓨터는 정확하게 표현할 수있는 두 정수의 소수로 숫자를 저장하지 않는 이유는 무엇입니까?십진수 부정확성을 해결하기 위해 분수를 사용하십시오.
- 숫자가 어딘가에 표시 될 때마다 부정확 한 부동 소수점으로 변환 될 수 있습니다.
- 추가 계산을 할 때마다 분수를 포함합니다.
이것은 근본적으로 부정확성의 문제를 해결해야하지만 모든 천재가 아니므로 이론에 무엇이 잘못 되었습니까?
숫자 0.1을 저장하고 추후 계산에 사용하려고합니다. 0.1로 저장하는 대신 1/10로 저장합니다 (따라서 분수를 저장하기 위해 더 많은 바이트가 필요합니다). 그런 다음 다른 숫자, 예를 들어 5로 곱해야 할 경우 오류를 3으로 곱하십시오. 1/10을 3으로 곱하면 1/10 * 3 = 3/10이됩니다. 그것을 표시해야 할 때마다 3/10이 부정확해질 수 있습니다. 그 때까지는 부정확성에 의문의 여지가 없습니다.
존재하는 부동 소수점 형식은 계산시 쉽고 빠르게 사용할 수 있으며 하드웨어로 구현하기도 쉽습니다. 그것들은 또한 매우 작아서 포맷이 생성 될 당시 더욱 중요했습니다. –
1/k의 합을 n보다 큰 k보다 작게 계산하면 분모의 크기 (비트)가 n과 관련하여 지수 적이라는 것을 알 수 있습니다. 부동 소수점 형식은 이러한 계산 결과에 대해 일정한 크기 (비트 단위)를 유지합니다. 근사값이라 할지라도 모든 부동 소수점 계산은 고정 된 경계 저장 영역과 고정 된 경계 시간에서 수행됩니다. 이는 "정확한"분수의 경우가 아닙니다. – Franck