由于浮点数有误差,有时候不能有误差,所以我们可以用一个分数来记录:
n/m
如何显示呢,当然不能是分数啊,转换成浮点
余数*10继续除就好了这样就不会有小数点了。
下面一个例子:保留200个小数位。
#include <stdio.h>
int main(int argc, char const *argv[])
{
int n,m,i=1,b=1;
scanf("%d/%d",&n,&m);
printf("0.");
while(b){
n*=10;
int d = n/m;
n = n%m;
printf("%d", d);
if(n==0){b=0;}
i++;
if(i>200){
b=0;
}
}
return 0;
}