doublefloatjava
Ⅰ java double和float的區別
一、float是單精度類型,精度是8位有效數字,取值范圍是10的-38次方到10的38次方,float占 用4個位元組的存儲空間
二、double是雙精度類型,精度是17位有效數字,取值范圍是10的-308次方到10的308次 方,double佔用8個位元組的存儲空間
三、當你不聲明的時候,默認小數都用double來表示,所以如果要用float的話,則應該在其 後加上f
例如:float a=1.3f;如果寫作:float a=1.3;
則會提示不能將double轉化成float 這成為窄型轉化
如果要用float來修飾的話,則應該使用float a=1.3f
四、注意float是8位有效數字,第7位數字將會產生四捨五入
所以如果一個float變數 這樣定義: float a=1.32344435f; 則第7位將產生四捨五入(5及5 以下的都將捨去)
五、轉載至http://www.360doc.com/content/17/0501/18/42534750_650101155.shtml
Ⅱ javafloat和double的區別
float與double的區別
單精度浮點數在機內佔4個位元組,用32位二進制描述。
雙精度浮點數在機內佔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 和double有什麼區別,對於賦值來說,求解。謝謝!
float為單精度浮點類型,佔4個位元組,能表示的數范圍小;double為雙精度浮點類型,版佔8個位元組,能表權示的數范圍大。
對於賦值來說,因為聲明浮點數時默認為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 //正確
Ⅳ java中float和double的區別
單精度和雙精度。
float是單精度類型,精度是8位有效數字,取值范圍是10的-38次方到10的38次方,float佔用4個位元組的存儲空間
double是雙精度類型,精度是17位有效數字,取值范圍是10的-308次方到10的308次方,double佔用8個位元組的存儲空間
當你不聲明的時候,默認小數都用double來表示,所以如果要用float的話,則應該在其後加上f
例如:float a=1.3;
則會提示不能將double轉化成float 這成為窄型轉化
如果要用float來修飾的話,則應該使用float a=1.3f
注意float是8位有效數字,第7位數字將會產生四捨五入
所以如果一個float變數 這樣定義: float a=1.32344435; 則第7位將產生四捨五入(5及5以下的都將捨去)
Ⅳ 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] 。
(5)doublefloatjava擴展閱讀
基本數據類型的特點,位數,最大值和最小值。
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和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"也可以不寫
Ⅶ 請教一下: java語言中,float (單精度浮點型)和 double(雙精度浮點型), 到底是
二者的取值范圍和精度是不同的
float的精度是6位有效數字,取值范圍是10的-38次方到專10的38次方,float佔用4位元組空屬間
double的精度是15位有效數字,取值范圍是10的-308次方到10的308次方,double佔用8位元組空間
Ⅷ float和 double類型在java各是多少位啊
Java中的float是32位的,來double是64位的。自
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。
Ⅸ 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在可能是兩個不同的數字,但是受到浮點數表示精度的限制,有可能會錯誤的判斷兩個數相等!