float的範圍和有效位

2021-10-09 04:10:16 字數 900 閱讀 2432

float 範圍是3.4e-38 ——3.4e+38,可提供7位有效數字。 

上述這兩個量都是近似值,各個編譯器不太一樣的。 

下面我就將標準值是怎麼定義的,和你說一下: 

這個比較複雜,建議你找一下ieee754標準看一下。 

這個簡單說一下吧: 

在ieee754標準中進行了單精度浮點數(float)和雙精度數浮點數(double)的定義。float有32bit,double有64bit。它們的構成包括符號位、指數字和尾數字。 

這些位的構成如下: 

種類-------符號位-------------指數字----------------尾數字---- 

float---第31位(佔1bit)---第30-23位(佔8bit)----第22-0位(佔23bit) 8388607.0

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位

也就是說:

float f = 100000000f;

float f2 = 100000001f;

二者的精度是一樣的,超過了表示範圍所以後續即便f++ 也不能有實質性的增加

float的範圍和有效位

首先說一下 範圍是3.4e 38 3.4e 38,可提供7位有效數字。上述這兩個量都是近似值,各個編譯器不太一樣的。下面我就將標準值是怎麼定義的,和你說一下 這個比較複雜,建議你找一下ieee754標準看一下。這個簡單說一下吧 在ieee754標準中進行了單精度浮點數 float 和雙精度數浮點數 ...

float和double取值範圍

最近在複習的時候發現基礎太薄弱,對於float和double雖然了解所佔位元組數,但不知道他們的取值範圍是多少,這對參加大廠筆試題時是十分不利的 1.八種資料型別的分類如下 第一類 整型 byte short int long 第二類 浮點型 float double 第三類 邏輯型 boolean...

Float和Double的範圍和精度

float與d ouble的範圍和精度 float和double的範圍是由指數的位數來決定的。float的指數字有8位,而double的指數字有11位,分布如下 float 1bit 符號位 8bits 指數字 23bits 尾數字 double 1bit 符號位 11bits 指數字 52bits...