浮點型運算結果是不精確的,會出現精度丟失

2021-08-29 20:41:19 字數 435 閱讀 1777

float a = 1.1f;

float b = 3.1415926f;

double b=1.1d;

double result = a+b; //結果是2.2000 0002 3841 858

解析:單精度有7~8位小數,雙精度有15位小數

二進位制儲存,單精度只有16個二進位制位,雙精度有64個二進位制位,二進位制位裡面包含正負號,整數部分,小數點,小數部分 正 負號和小數點占用二進位制位數是定值。

將十進位制浮點數轉換為二進位制浮點數時,小數的二制有時也是不可能精確的,就如同十進位制不能準確表示1/3,二進位制也無法準確表示1/10,而double型別儲存尾數部分最多只能儲存52位,於是,計算機在儲存該浮點型婁據時,便出現了精度丟失。

在進行浮點類資料計算的時候,浮點參與計算,會左移或右移n位,直到小數點移動到第乙個有效數字的右邊,於是也可能出現精度丟失。

解決python運算結果是浮點數問題

solution 今天在實現乙個減法運算print 45.4 2 20 的結果中發現結果是5.399999999999999 網上查詢部落格才了解原來是自己啥也不是。因為浮點數在計算機中實際上是以二進位制的形式儲存的,有些數不精確。例如 0.1是十進位制,轉化二進位制是無限迴圈的 1.方法 十進位制...

unity 浮點數的不精確引發的地磚縫隙

unity中,大多數時候,都需要用 float 型別,與 int 型別不同,float 型別在進行計算的時候,會有誤差,或多或少。有乙個問題,就是誤差是會累積的,假如,一次誤差 0.001是無傷大雅的,但是,累積到 0.1的時候,可能,就會出現問題,最直觀的情況,就是 地圖的拼接,大多地圖都是由地塊...

python結果 Python中 的結果是什麼?

像這樣的表情x y計算為x y.優先順序與運算子相同。分組 及 乘法 9 2 9 2 9除以2等於4。4乘2等於8 9減8是1 剩餘部分。python抓到了 取決於您使用的python版本,也是 不推薦的 字串內插運算子,因此請注意,如果您來自具有自動型別轉換 如php或js 的語言,其中的表示式如...