高精度浮點數

由於浮點數有誤差,有時候不能有誤差,所以我們可以用一個分數來記錄:
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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章