가능한 중복 : 가장 가까운 부동 소수점 값을 계산
How to convert floats to human-readable fractions?
0.595781
말을 한 나는 그 용도 몫를 사용하여 가능한 한에 가까운 좀하고 싶습니다
0 to 1023 (10-bits)
범위에서 제한되는 정수 분자 및 분모 값만.
직관적 인 방법
는 (적어도 시작하는)0.555
상당히 가까운 일치 (오류가
0.040781
입니다)를 제공
595/1000
을 사용하는 것이 작업을 수행 할 수 있습니다.
그러나 더 일치하는 597/1002
은 0.595808
(오류는 0.0000273
입니다)입니다. 더 나은 경기도있을 수 있습니다. 나는 원래의 값에 가까운 분자 값과 분모 값을 쓸데없는 방식으로 사용하여 두 번째 몫으로왔다.
그런 다음 분자 및 분모 정수 값을 직접 가져 오는 모든 기준이 주어진 방법이 있는지 궁금합니다.
보레이트 발생기를 Infineon XE167G device
으로 설정하는 데 궁금한 두 개의 정수 값이 필요한 경우.
모든 아이디어를 얻을 수 있습니다. 감사
단순한 반올림으로 인해 596/1000에 가까워지면 왜 595/1000은 직관적일까요? – TJD
분모의 경우 d = 1024 인 경우 [최상의 합리적인 근사값] (https://en.wikipedia.org/wiki/Continued_fraction#Best_rational_approximations)이 필요합니다. 이것은 Borgleader에 의해 링크 된 복제물에서 응답됩니다. –
최상의 정밀도를 얻으려면 사용 가능한 가장 높은 악마 화 장치 (0에서 1023까지의 값은 512 임)를 사용합니다 (2의 제곱입니다). 그런 다음 첫 번째 분자는 원형 (512 * 값)입니다. 이것은 부동 소수점 값이 2 진이므로 항상 1/512보다 작은 정밀도를 보장합니다. 더 나은 정밀도를 위해 분모를 수정하려면 분모에 추가되는 보정 항 = (분자/값) - 신 경점을 계산하십시오. –