浮點型失去精度的解釋

2021-07-27 06:45:21 字數 336 閱讀 8716

從原理上來講,任何一門語言對於浮點數的計算都是不精確的。

因為現在的computer都是基於二進位制數來儲存計算的。

例如計算8+3時,computer會轉換為二進位制的加法1000+11=1011,然後再轉換為十進位制數為11。這種演算法對於整數來說是不會產生誤差的(如果不超過計算範圍);而對於浮點數計算有時就會產生誤差。

因為有的浮點數轉換成為二進位制時是乙個無窮迴圈小數。例如十進位制的0.4,轉換成為二進位制為0.0110011001100110....,這樣,在0.4+0.3時就不能準確的算出是0.7,而是經過一些捨入處理才能得出正確結果,但經過多次運算誤差產生的較大時,即使經過一些捨入處理也不能得到精確的結果了。

浮點型精度分析

科學計數法1.233e23,e大概是exponent指數,階碼。分為三部分,整數部分為1的因數,e是進製階數,後邊是指數二進位制和十進位制轉換 二進位制轉10進製自然語言中以十進位制為主,將十進位製作為基座標更加容易理解 例二進位制 1.1 十進位制 加權係數展開 整數部分 1 2 小數部分 1 2...

什麼叫單精度浮點型?什麼叫雙精度浮點型?

引用一寫道 單精度浮點型 float 專指占用32位儲存空間的單精度 single precision 值。單精度在一些處理器上比雙精度更快而且只占用雙精度一半的空間,但是當值很大或很小的時候,它將變得不精確。當你需要小數部分並且對精度的要求不高時,單精度浮點型的變數是有用的。例如,當表示美元和分時...

Python 浮點型精度問題

目錄print 0.1 0.2 print 0.1 0.1 0.1 0.2 print 0.1 0.1 0.1 0.3 輸出 0.30000000000000004 0.10000000000000003 5.551115123125783e 17出現這種精度問題 因為十進位制與二進位制的相互轉換 ...