在C语言中,众所周知,对于浮点数,计算机之中存储的只是一个近似数,有效位也是有效的,并且在输出的时候能给出的位数也是相当有限的,对此,我们可以自己写一个对于两个数相除的高精度除法的值。
代码如下
#include<stdio.h>
#define size 100
int main() {
int number[size] = { 0 };
int number_qian = 0;
printf("请分别输入分子和分母,不必加“/”\n");
int fenzi = 0;
int fenmu = 0;
scanf("%d %d", &fenzi, &fenmu);
if (fenzi > fenmu) {
number_qian = fenzi / fenmu;
fenzi %= fenmu;
}
for (int i = 0;i < size;i++) {
fenzi *= 10;
number[i] = fenzi / fenmu;
fenzi %= fenmu;
if (fenzi == 0) {
break;
}
}
printf("%d.",number_qian);
for (int i = 0;i < size;i++) {
if (number[i] == 0) {
break;
}
printf("%d", number[i]);
}
return 0;
}