问题
本人在学习c语言时写了一个高精度小数计算程序,要求输出结果要有小数点后200位,我的代码是这样的
但是在我输入16/19时,输出的结果却是这样的
他只给了我小数点后6位,我不明白自己哪里错了,后来我又在网上找到了正确的代码
这条正确的代码输出确实后面带了200位,相比我的代码又简洁又易懂,但是我还是不明白我的代码到底错在哪里了,我又用草稿纸演算了一遍我的代码,依然没有找到正确的答案,恳请各位点出我的错误
自己的代码
#include <stdio.h>
int main() {
int x, y;
scanf_s("%d/%d", &x, &y);
int a;
int i = 0;
double sum = 0;
double c = 0.1;
while (i != 200) {
x *= 10;
a = x / y;
sum += c * a;
c /= 10;
x %= y;
i++;
}
printf("%f", sum);
return 0;
}