小数を分数に変換しようとしています。10 進数は、小数点以下 4 桁までです。例:- 12.34 = 1234/100 12.3456 = 123456/10000
私のコード:-
#include <stdio.h>
int main(void) {
double a=12.34;
int c=10000;
double b=(a-floor(a))*c;
int d=(int)floor(a)*c+(int)b;
while(1) {
if(d%10==0) {
d=d/10;
c=c/10;
}
else break;
}
printf("%d/%d",d,c);
return 0;
}
しかし、正しい出力が得られません。10 進数は倍精度のみになります。どうすればよいか教えてください。