C語言 高精度小數

2021-09-24 22:23:02 字數 549 閱讀 4307

由於計算機內部表達方式的限制,浮點運算都有精度問題,為了得到高精度的計算結果,就需要自己設計實現方法。

(0,1)之間的任何浮點數都可以表達為兩個正整數的商,為了表達這樣兩個數的商,可以將相除的結果以多個整數來表示,每個整數表示結果的一位。即商的第一位用乙個整數來表示,第二位用另乙個整數來表示,以此類推,就可以輸出乙個高精度的除法結果了。

如16/19的結果0.8421052631…就可以依次輸出8、4、2、1、0、5、2、6、3、1…。

160/19->8餘8

80/19->4餘4

...

當某次餘數為0時,則表明除盡。

現在,請寫乙個程式,輸入乙個分數,計算出它的小數形式。無論是否可以除盡,輸出最多小數點後200位。

int n,n1;

scanf("%d/%d",&n,&n1);

int a=0;

int b=1 ;

if(n>n1)

else printf("0.");

while(n0)

C實現高精度小數

高精度小數 10分 題目內容 由於計算機內部表達方式的限制,浮點運算都有精度問題,為了得到高精度的計算結果,就需要自己設計實現方法。0,1 之間的任何浮點數都可以表達為兩個正整數的商,為了表達這樣兩個數的商,可以將相除的結果以多個整數來表示,每個整數表示結果的一位。即商的第一位用乙個整數來表示,第二...

高精度小數C程式

由於計算機內部表達方式的限制,浮點運算都有精度問題,為了得到高精度的計算結果,就需要自己設計實現方法。0,1 之間的任何浮點數都可以表達為兩個正整數的商,為了表達這樣兩個數的商,可以將相除的結果以多個整數來表示,每個整數表示結果的一位。即商的第一位用乙個整數來表示,第二位用另乙個整數來表示,以此類推...

高精度乘法(大數模擬高精度 小數快速高精度取模)

實現 n個數相乘,求出最後的值。但是太慢了啊!超時。一位一位的乘。但是這個也是一種方法吧,簡單的高精度,等再學學優化一下。include include include include include include include include include include includeus...