C實現高精度小數

2021-08-18 18:34:55 字數 835 閱讀 5679

高精度小數(10分)

題目內容:

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

(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位。

輸入格式:

形如 a/b的兩個數,其中10<=a輸出格式:

形如0.*********的小數,小數點後最多200位。輸出結束的時候要帶著回車換行。如果a/b是乙個有限不迴圈小數,則輸出完所有的有效位就可以了,不需要再輸出後面的0來湊滿200位。

#include 

int main()

; //儲存結果

int i = 0;

while( rem != 0 && i < 200)

printf("0.");

for(int j = 0; j < i; j++)

printf("\n");

return

0;}

高精度小數C程式

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

C語言 高精度小數

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

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

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