❶ 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不同,不要寫錯,能用單精度時不要用雙精度(以省內存,加快運算速度)
❷ java中的Float和float
float是原始數據類型,賦值方法
float b = 111.111f; //數字後面的f代表float類型,否則會報錯
而Float,是對float的封裝,是一個類,所以賦值時需要賦給一個對象
比如:
Float a = new Float(111.111);
但是上面這種方法效率並不高,一般採用下面的方法更好:
Float a = Float.valueOf(111.111f);
❸ java的float類型聲明
-1是整數,整數賦給float不會有損失。將-1改成-1.0就不行了,就必須加f或F。
❹ java中float和double的取值范圍是什麼
float:4位元組(32bit),IEEE 754. 取值范圍:
[-3.40282346638528860e+38 , -1.40129846432481707e-45] ∪ [1.40129846432481707e-45 ~ 3.40282346638528860e+38] 。
double: 8位元組(64bit) ,IEEE 754. 取值范圍:
[-1.79769313486231570e+308,-4.94065645841246544e-324] ∪ [4.94065645841246544e-324,1.79769313486231570e+308] 。
(4)floatjava擴展閱讀
基本數據類型的特點,位數,最大值和最小值。
1、
基本類型:short 二進制位數:16
包裝類:java.lang.Short
最小值:Short.MIN_VALUE=-32768 (-2的15此方)
最大值:Short.MAX_VALUE=32767 (2的15次方-1)
2、
基本類型:int 二進制位數:32
包裝類:java.lang.Integer
最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
最大值:Integer.MAX_VALUE= 2147483647 (2的31次方-1)
3、
基本類型:long 二進制位數:64
包裝類:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808 (-2的63次方)
最大值:Long.MAX_VALUE=9223372036854775807 (2的63次方-1)
4、
基本類型:float 二進制位數:32
包裝類:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45 (2的-149次方)
最大值:Float.MAX_VALUE=3.4028235E38 (2的128次方-1)
5、
基本類型:double 二進制位數:64
包裝類:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324 (2的-1074次方)
最大值:Double.MAX_VALUE=1.7976931348623157E308 (2的1024次方-1)
❺ JAVA定義float a = 2.0對嗎
在java中,如果想定義基本類型是float型的數據,
就要在初始化的時候在數字後面明確的寫上後綴f
否則將編譯出錯。
應該寫成:
float a = 2.0f;
在java中小數默認處理為double類型的,但是要進行強制轉換才可以把float型的數據轉化成double型的
❻ Java float數據類型
與表示整數的整型不同,浮點型代表的是實數,其實就是包含小數的部分。我們也知道現實世界中是由很多復雜的數據的,所以需要這種表示實數的數據類型的支持。
一、浮點型常量
Java的實常數有兩種表示形式:
1.十進制數形式,由數字和小數點組成,且必須有小數點,如0.123, .123, 123. ,123.0 。
2.科學計數法形式。如:123e3或123E3,其中e或E之前必須有數字,且e或E後面的指數必須為整數。
實常數在機器中佔64位,具有double型的值。對於float型的值,則要在數字後加f或F,如12.3F,它在機器中佔32位,且表示精度較低。
二、浮點型變數
浮點型變數的類型有float和double兩種。
數據類型所佔位數的范圍:
float 32位 3.4e-038~3.4e+038 ;
double 64位 1.7e-308~1.7e+308 ;
雙精度類型double比單精度類型float具有更高的精度,和更大的表示範圍,常常用於科學計算等高精度場合。
三、浮點型變數定義舉例
float f; //指定變數f為float型
double d; //指定變數d為double型
與C、C++不同,Java中沒有無符號型整數,而且明確規定了整型和浮點型數據所佔的內存位元組數,這樣就保證了安全性、魯棒性和平台無關性。
❼ java中float和double的區別...
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在可能是兩個不同的數字,但是受到浮點數表示精度的限制,有可能會錯誤的判斷兩個數相等!
❽ java中的float類型
java中的float類型
.浮點類型
1) 與整數類型一樣,同樣有固定的表述范圍和欄位長度,且不受具體的操作系統的影響,保證了Java的跨平台性
2) Java語言中,浮點類型有兩種表現形式,分別是:
a. 十進制數形式, 如3.14
b. 科學計數法,如,3.14e2, 3.14e-2, -3.14E2
3) Java語言中,默認的浮點數類型是double,聲明float類型的時候,後面必須添加字母f或者F,如3.14F,3.14f
4) Java中兩種浮點類型的表述范圍:
❾ java中的float類型定義
答案是AD。A 中-1是int型的,能轉為float型。B中1.0默認是double,不能轉為float。C中3.03d也是double型的,不能轉為float。D就不用說啦,肯定是對的。
❿ 問一下java Float 與float的區別
Float 是float的包裝類,
其中包含了一些對於float的方法,float是沒方法的屬性的哦,
Float f1 = new Float(128)創建出來的是對象,保存在堆中
float f2 = 128 這個則是保存在棧中
小f = 大F是可以的
因為在java 5.0之後引入了自動封箱和拆箱
意思就是
小f = 大F執行這句的時候大F會拆箱成為小f,然後在賦值給小f
反過來也是對的
大F=小f這樣小f就封箱成為一個大F在賦值了