導航:首頁 > 編程語言 > javadoublefloat區別

javadoublefloat區別

發布時間:2022-09-10 13:44:51

1. java中float和double的區別是什麼

(1)float型 內存分配4個位元組,佔32位,范圍從10^-38到10^38 和 -10^38到-10^-38
例float x=123.456f,y=2e20f; 注意float型定義的數據末尾必須有"f"或"F",為了和double區別

(2)double型 內存分配8個位元組,范圍從10^-308到10^308 和 -10^-308到-10^-308
例double x=1234567.98,y=8980.09d; 末尾可以有"d"也可以不寫

2. java float和double的區別

單精度(float),一般在計算機中存儲佔用4位元組,也32位,有效位數為7位;雙精度(double)在計算機中存儲佔用8位元組,64位,有效位數為16位。
不管float還是double 在計算機上的存儲都遵循IEEE規范,使用二進制科學計數法,都包含三個部分:符號位,指數位和尾數部分。其中float的符號位,指數位,尾數部分分別為1, 8, 23. 雙精度分別為1, 11, 52。
精度主要取決於尾數部分的位數,float為23位,除去全部為0的情況以外,最小為2的-23次方,約等於1.19乘以10的-7次方,所以float小數部分只能精確到後面6位,加上小數點前的一位,即有效數字為7位。 類似,double 尾數部分52位,最小為2的-52次方,約為2.22乘以10的-16次方,所以精確到小數點後15位,有效位數為16位。

3. java 中float 和double有什麼區別,對於賦值來說,求解。謝謝!

  1. float為單精度浮點類型,佔4個位元組,能表示的數范圍小;double為雙精度浮點類型,佔8個位元組,能表示的數范圍大。

  2. 對於賦值來說,因為聲明浮點數時默認為double類型,所以float需要在數的的後面添加f/F;

    例:

    float a=1.2 //錯誤

    float a=1.2f //正確

    float a=1.2F //正確

    double b=1.2 //正確

    double b=1.2d //正確

    double b=1.2D //正確

4. java double和float的區別

1、內存結構
float和double的范圍是由指數的位數來決定的。
float的指數位有8位,而double的指數位有11位,分布如下:
float:
1bit(符號位)
8bits(指數位)
23bits(尾數位)
double:
1bit(符號位)
11bits(指數位)
52bits(尾數位)
於是,float的指數范圍為-128~+127,而double的指數范圍為-1024~+1023,並且指數位是按補碼的形式來劃分的。
其中負指數決定了浮點數所能表達的絕對值最小的非零數;而正指數決定了浮點數所能表達的絕對值最大的數,也即決定了浮點數的取值范圍。
float的范圍為-2^128
~
+2^127,也即-3.40e+38
~
+3.40e+38;double的范圍為-2^1024
~
+2^1023,也即-1.79e+308
~
+1.79e+308。
2.
精度
float和double的精度是由尾數的位數來決定的。浮點數在內存中是按科學計數法來存儲的,其整數部分始終是一個隱含著的「1」,由於它是不變的,故不能對精度造成影響。
float:2^23
=
8388608,一共七位,由於最左為1的一位省略了,這意味著最多能表示8位數:
2*8388608
=
16777216
。有8位有效數字,但絕對能保證的為7位,也即
float的精度為7~8位有效數字
double:2^52
=
4503599627370496,一共16位,同理,
double的精度為16~17位
之所以不能用f1==f2來判斷兩個數相等,是因為雖然f1和f2在可能是兩個不同的數字,但是受到浮點數表示精度的限制,有可能會錯誤的判斷兩個數相等!

5. java中float和double的區別

float表示單精度浮點數在機內佔4個位元組,用32位二進制描述。
double表示雙精度浮點數在機內佔8個位元組,用64位二進制描述。
浮點數在機內用指數型式表示,分解為:數符,尾數,指數符,指數四部分。
數符佔1位二進制,表示數的正負。
指數符佔1位二進制,表示指數的正負。
尾數表示浮點數有效數字,0.xxxxxxx,但不存開頭的0和點
指數存指數的有效數字。
指數佔多少位,尾數佔多少位,由計算機系統決定。
可能是數符加尾數佔24位,指數符加指數佔8位 -- float.
數符加尾數佔48位,指數符加指數佔16位 -- double.
知道了這四部分的佔位,按二進制估計大小范圍,再換算為十進制,就是浮點數的數值范圍。
編程人員來說,double 和 float 的區別是double精度高,有效數字16位,float精度7位。但double消耗內存是float的兩倍,double的運算速度比float慢得多,java語言中數學函數名稱double 和 float不同,不要寫錯,能用單精度時不要用雙精度(以省內存,加快運算速度)。

閱讀全文

與javadoublefloat區別相關的資料

熱點內容
華為交換機dhcp配置命令 瀏覽:314
androidbitmap縮小 瀏覽:270
單片機串口控制燈 瀏覽:84
大訊雲伺服器安裝視頻 瀏覽:784
華為演算法領先世界 瀏覽:653
linux路由重啟 瀏覽:566
php的模板編程 瀏覽:320
編譯器原理與實現書 瀏覽:709
dos選擇命令 瀏覽:17
apm固件編譯到單片機 瀏覽:121
聯通深藍卡都包含什麼app 瀏覽:264
如何判斷網路伺服器正常 瀏覽:650
路由器搭橋遠端伺服器地址是什麼 瀏覽:516
編譯動態庫時會連接依賴庫嗎 瀏覽:709
淘寶手機加密是隨機的嗎 瀏覽:674
解壓包子怎麼裝飾 瀏覽:587
四個數湊24演算法 瀏覽:677
哪一種不是vi編譯器的模式 瀏覽:171
xp在此處打開命令窗口 瀏覽:129
代碼編譯運行用什麼軟體 瀏覽:1000