高精度小數C程式

2021-08-21 19:46:28 字數 581 閱讀 9657

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

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

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

而除法的過程,則可以模仿人工列豎式做除法的方式,先將被除數乘以10,得到一位商以後,將餘數乘以10作為下一輪計算的被除數:

160/19->8餘8

80/19->4餘4

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

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

**:

#include

int main()

while(a == 0 || count < 200);

printf("\n");

return

0;}

C實現高精度小數

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

C語言 高精度小數

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

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

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