21 浮點數的處理

2021-10-02 07:32:51 字數 434 閱讀 9755

在計算機中所有的數字都是以 2 進製來表示,但 10 進製的小數,在計算機中就不能夠精確的表示,只能無限的接近,而不能精確的表示。

0.1-0.9 中只有 0.5 能夠使用二進位制精確的表示,其他均需要擷取指定的位數來表示

原理參見引用文章:

由於浮點數在計算機中儲存時不精確的,所以浮點數直接進行四則運算,都會產生誤差。

浮點數的儲存:可考慮採用大整數來替代浮點數來儲存

浮點數的運算:可採用高精度庫如: decimal,但這也僅僅是在減小誤差。

浮點數的比較:不能直接使用==!=來比較,因為計算機處理浮點數時就存在誤差,可以判斷兩浮點數是否落在同一區間內([-epsinon,epsinon],epsinon 是為允許的誤差,即精度)。

浮點數字數處理

標頭檔案 include 第一種寫法 cout setiosflags ios fixed setprecision 2 第二種寫法 cout.setf ios fixed cout setprecision 2 第三種寫法 cout 保留幾位就在setprecision的括號中寫幾位 只要在前面寫...

浮點數的儲存以及 浮點數的比較

浮點數的儲存採用的是近似的原理 float儲存格式為 s e m 1位符號位 8位指數 23位尾數 轉成數值即為 v 1 s 1.m 2 e 127 對於16.5轉成二進位制為00010000.1 1.00001 2 4,那麼在記憶體的表示為 符號位 指數4 127 131 尾數 0 1000001...

浮點數 儲存

關鍵字 體系結構 ieee754 浮點數 儲存 main 如果不執行上面的 讓我們來直接判斷,輸出的結果會是什麼?而在你執行程式之後,結果卻很讓人詫異 123.456001。為什麼會是123.456001?有六位小數可以理解,最後那個1是為何?有很多人解釋說最後那個1是亂碼,隨機的。嘿嘿 其實無論你...