안녕하세요, 저는 소수점 A를 분수 B + C/D로 포맷하려고합니다. 특정 한계가 D에 부과됩니다. D는 다음 중 하나 일 수 있습니다. [2 ... 9] 또는 [2 ... 19] 등. BCD는 정수입니다. 가능한 한 소수에 가까운 형식화 된 소수를 얻는 것이 목표입니다. 여기에 기존 알고리즘/이론이 있습니까? Mac SDK에서 호출 할 수있는 API가 있습니까?어떻게 분모의 분수로 분수를 포맷 할 수 있습니까?
1
A
답변
0
계속되는 분수를보십시오./도움
1
// Not tested or even compiled :-). Assumes you are handling sign
// in: a - the decimal to convert
// limit - the largest denominator you will allow
// out: outN - Numerator
// outD Denominator
#include <math.h>
void d2f(double a, int limit, int& outN, int& outD) {
double z;
int dPrev, d, n;
a = fabs(a);
z = a;
d = 1;
n = a;
dPrev = 0;
while (a - (double)(n/d) != 0 && z != floor(z)) {
z = 1/(z - floor(z));
int tmp = d;
d = d * (int)floor(z) + dPrev;
if (d > limit) {
d = tmp;
break;
}
dPrev = tmp;
n = floor(a * d + 0.5);
}
outN = n;
outD = d;
}
희망 :-)
작동관련 문제
- 1. 이 날짜를 어떻게 포맷 할 수 있습니까?
- 2. 라벨 캡션을 어떻게 포맷 할 수 있습니까?
- 3. 어떻게 열에 인쇄 할 텍스트 파일을 포맷 할 수 있습니까?
- 4. jpeg에서 흰색 픽셀의 분수를 계산하려면 어떻게 루비를 사용할 수 있습니까?
- 5. Perl 형식을 사용하지 않고 어떻게 열을 포맷 할 수 있습니까?
- 6. 캘린더에 포함 된 날짜를 어떻게 포맷 - 프린트 할 수 있습니까?
- 7. 어떻게 자바 스크립트를 사용하여 MYSQL 날짜를 포맷 할 수 있습니까?
- 8. 레일스 편집 필드에 표시된 값을 어떻게 포맷 할 수 있습니까?
- 9. 어떻게 .net 응용 프로그램에서 파티션을 포맷 할 수 있습니까?
- 10. mysql 프롬프트 출력을 어떻게 포맷 할 수 있습니까?
- 11. Java로 날짜를 월, 일, 시간으로 어떻게 포맷 할 수 있습니까?
- 12. 'T'문자가 삽입 된 타임 스탬프를 어떻게 포맷 할 수 있습니까?
- 13. 파이썬에서 변수를 포맷 할 수 있습니까?
- 14. Eclipse에서 열린 파일을 포맷 할 수 있습니까?
- 15. 출력을 포맷 할 수 없습니다.
- 16. C#에서 표시 할 XmlDocument를 빠르게 포맷 할 수 있습니까?
- 17. 파이썬 : 어떻게 str.format와 문자열 % 번호를 포맷 할()
- 18. 혼합 분수를 float로 쉽게 변환 할 수있는 Python 모듈이 있습니까?
- 19. 바니시로 URL 매개 변수를 다시 포맷 할 수 있습니까?
- 20. 분수를 줄이는 자바 스크립트 함수가 있습니까
- 21. XSL-FO - 자동으로 소스 코드를 포맷 할 수 있습니까?
- 22. 별표를 더 많이 선택하여 포맷 할 수 있습니까?
- 23. 이 날짜 문자열을 더 좋은 방법으로 포맷 할 수 있습니까?
- 24. 시각적으로 JSON 데이터를 프로그래밍 방식으로 포맷 할 수 있습니까?
- 25. SQL을 사용하여 분수로 소수점 표시
- 26. 결과 문서를 어떻게 포맷 하시겠습니까?
- 27. C에서 문자열로 분수로 double 변환 #
- 28. float 문제 : 분수를 반환하지 않습니다.
- 29. LINQ로 어떻게 할 수 있습니까?
- 30. Git에서 어떻게 할 수 있습니까?