首先說一下: 範圍是3.4E-38 ——3.4E+38,可提供7位有效數字。 上述這兩個量都是近似值,各個編譯器不太一樣的。 下面我就將標準值是怎麼定義的,和你說一下: 這個比較複雜,建議你找一下IEEE754標準看一下。 這個簡單說一下吧: 在IEEE754標準中進行了單精度浮點數(float)和雙精度數浮點數(double)的定義。float有32bit,double有64bit。它們的構成包括符號位、指數位和尾數位。 這些位的構成如下: 種類-------符號位-------------指數位----------------尾數位---- float---第31位(佔1bit)---第30-23位(佔8bit)----第22-0位(佔23bit) double--第63位(佔1bit)---第62-52位(佔11bit)---第51-0位(佔52bit) 取值範圍主要看指數部分: float的指數部分有8bit(2^8),由於是有符號型,所以得到對應的指數範圍-128~128。 double的指數部分有11bit(2^11),由於是有符號型,所以得到對應的指數範圍-1024~1024。 由於float的指數部分對應的指數範圍為-128~128,所以取值範圍為: -2^128到2^128,約等於-3.4E38 — +3.4E38 精度(有效數字)主要看尾數位: float的尾數位是23bit,對應7~8位十進位制數,所以有效數字有的編譯器是7位,也有的是8位
首先說一下: 範圍是3.4E-38 ——3.4E+38,可提供7位有效數字。 上述這兩個量都是近似值,各個編譯器不太一樣的。 下面我就將標準值是怎麼定義的,和你說一下: 這個比較複雜,建議你找一下IEEE754標準看一下。 這個簡單說一下吧: 在IEEE754標準中進行了單精度浮點數(float)和雙精度數浮點數(double)的定義。float有32bit,double有64bit。它們的構成包括符號位、指數位和尾數位。 這些位的構成如下: 種類-------符號位-------------指數位----------------尾數位---- float---第31位(佔1bit)---第30-23位(佔8bit)----第22-0位(佔23bit) double--第63位(佔1bit)---第62-52位(佔11bit)---第51-0位(佔52bit) 取值範圍主要看指數部分: float的指數部分有8bit(2^8),由於是有符號型,所以得到對應的指數範圍-128~128。 double的指數部分有11bit(2^11),由於是有符號型,所以得到對應的指數範圍-1024~1024。 由於float的指數部分對應的指數範圍為-128~128,所以取值範圍為: -2^128到2^128,約等於-3.4E38 — +3.4E38 精度(有效數字)主要看尾數位: float的尾數位是23bit,對應7~8位十進位制數,所以有效數字有的編譯器是7位,也有的是8位