關於float的精度型別

2021-09-29 03:35:46 字數 564 閱讀 8275

1 主要記錄一下為什麼float的精度型別為6~7位

首先,應該明確float資料型別,佔4個位元組,共4*8=32位,其中:(ieee754標準規定如下)

32位當中,1位為符號位、8位指數字、23位為數值位。故float型別的數值是由後邊的23位決定。23位指的是2進製數可以表示2^23取值範圍以內的數都可以由它表示清楚。

但是我們程式所輸入的是十進位制數,其資料轉換過程為:十進位制(輸入)-----二進位制(計算機只識別二進位制)----十進位制(輸出顯示)

2^23=8388608,故對應十進位制為7位數。故float型的精度型別為7~8位有效數字(因為有的編譯器是7位有的編譯器是8位)

注意:7-8位是整數字和小數字加起來的位數

根據同樣的方法推算double型別的精度。

總結:float精度:7~8位有效數字

double精度:16~17位有效數字

Java中float型別精度問題

今天發現了乙個小的問題,在網上找了說的不多,在這記錄下來方便自己和比人解決自己的問題吧。片段 1unit double.valueof actionutils.getbillingtransformunit request 取出換算單位1000.0 2svt curvesegment.getendv...

Java中float型別精度問題

今天發現了乙個小的問題,在網上找了說的不多,在這記錄下來方便自己和比人解決自己的問題吧。片段 1unit double.valueof actionutils.getbillingtransformunit request 取出換算單位1000.0 2svt curvesegment.getendv...

關於float相減精度丟失的問題

小數的二進位制表示問題 首先我們要搞清楚下面兩個問題 1 十進位制整數如何轉化為二進位制數 演算法很簡單。舉個例子,11表示成二進位制數 11 2 5 餘 1 5 2 2 餘 1 2 2 1 餘 0 1 2 0 餘 1 0結束 11二進位制表示為 從下往上 1011 這裡提一點 只要遇到除以後的結果...