c语言 小数值精度问题

用16/19得不到0.84210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684210526315789473684

请问我错在哪了?


#include<stdio.h>

int main(void)
{
    int a,b;
    scanf("%d/%d",&a,&b);
    int n=a;
    long long int c=0;
    int t=0;
    do{
        n=(a*10)/b;
        c=(c+n)*10;
        t++;
        a=(a*10)%b;
        
        if(t>200){
            break;
        }
        
    }while(a>0 );
    
    printf("0.%lld",c/10);
    
    return 0;
}

改成 c/10.0