#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("%d.",a/b);
a=a%b;
//还得注意末尾的余数进位问题
while(c--)
{
a*=10;
int q=a/b;
if(c==0&&(a%b)*10/b>=5)
{
q++;
}
printf("%d",q);
a%=b;
}
return 0;
}
分数转化为小数,对于小数位的要求时一个注意点
如果小数位过大就不能用浮点数计算了
对于这种计算——就是相当于除以b后借位给余数再次进行相除
我没有考虑到的时末尾的进位问题,当c=0时如果最后一位余数>=5的话因为要保留c位,而位数是从0开始计的,所以c位要么舍要么进,所以多出了一个if判断