1. 程式人生 > >浮點型運算結果是不精確的,會出現精度丟失

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

float a = 1.1f; float b = 3.1415926f; //輸出結果3.1415925 精度丟失 double b=1.1d; double result = a+b; //結果是2.200000023841858 精度丟失

解析: 第一:計算機只識別二進位制型別 第二:在將十進位制浮點數轉換為二進位制浮點數時,小數的二制有時也是不可能精確的,就如同十進位制不能準確表示1/3,二進位制也無法準確表示1/10,而double型別儲存尾數部分最多隻能儲存52位,於是,計算機在儲存該浮點型婁據時,便出現了精度丟失。 第三: 在進行浮點類資料計算的時候,浮點參與計算,會左移或右移n位,直到小數點移動到第一個有效數字的右邊,於是也可能出現精度丟失。