Ⅰ java 中byte.short,int,long,float,double 的取值范圍分別是多少
其中byte、short、int、long都是表示整數的,只不過他們的取值范圍不一樣
byte的取值范圍為-128~127,佔用1個位元組(-2的7次方到2的7次方-1)
short的取值范圍為-32768~32767,佔用2個位元組(-2的15次方到2的15次方-1)
int的取值范圍為(-2147483648~2147483647),佔用4個位元組(-2的31次方到2的31次方-1)
long的取值范圍為(-9223372036854774808~9223372036854774807),佔用8個位元組(-2的63次方到2的63次方-1)
float和double是表示浮點型的數據類型,他們之間的區別在於他們的精確度不同
float 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同樣,e-45表示乘以10的負45次方)佔用4個位元組
double 1.797693e+308~ 4.9000000e-324 佔用8個位元組
double型比float型存儲范圍更大,精度更高,所以通常的浮點型的數據在不聲明的情況下都是double型的,如果要表示一個數據是float型的,可以在數據後面加上「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] 。
(2)javafloat大小擴展閱讀
基本數據類型的特點,位數,最大值和最小值。
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)
Ⅲ float占幾個位元組
4 個位元組。
FLOAT 數據類型用於存儲單精度浮點數或雙精度浮點數。浮點數使用IEEE(電氣和電子工程師協會)格式。浮點類型的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 二進制指數和一個 23 位尾數。
由於尾數的高順序位始終為 1,因此它不是以數字形式存儲的。此表示形式為 float 類型提供了一個大約在 -3.4E+38 ~ 3.4E+38 之間的范圍。
float數據類型用於存儲單精度浮點數或雙精度浮點數。浮點數使用IEEE(電氣和電子工程師協會)格式。浮點類型的單精度值包括數符,尾數,指數符,指數四部分。由於尾數的高順序位始終為 1,因此它不是以數字形式存儲的。
float數據在機內用指數型式表示,數符佔1位二進制,表示數的正負。指數符佔1位二進制,表示指數的正負。尾數表示浮點數有效數字,0.xxxxxxx, 但不存開頭的 0 和點。指數佔多少位,尾數佔多少位,由計算機系統決定。
Ⅳ 關於java的 float 數值范圍問題
float的取值范圍可以看 Float的MAX_VALUE和MIN_VALUE
下面的賦值float roadlength = 234.3333E9不可以編譯通過
float roadlength = 234.3333E9f才可以
Ⅳ 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中long和float的大小問題
int 32bit
long 64bit
float 32bit
double 62bit
自己參考吧!另外說聲,byte,short,int,long都屬於整形數據類型
而float和double屬於浮點型,而浮點型默認的是double,這就意味著你聲明float t = 1.0是不會通過編譯的,因為1.0在java中應該是double型的,所以你必須這樣聲明,float t = 1.0F;或者乾脆float t =(float)1.0;
這是新手常犯的錯誤,也是面試常見的java基礎之一
Ⅶ java 中float的取值范圍
java.lang.Float定義的常量
public static final float MAX_VALUE;
public static final float MIN_VALUE;
Ⅷ java如何判斷兩個float怎麼比大小
浮點數判斷需要注意,float 和double 的精度范圍,超過范圍的數字會被忽略
(1) 浮點數大小判斷
如果沒有等號關系在裡面,也就必然一大一小,那麼直接用 > 或者 <
(2) 浮點數相等判斷
因為 浮點數在內存中存放,可能無法精確的儲存,所以同一個值,可能有不同的內存數據,所以要使用以下的方法:
以float 為例,32位APP中精度為 6-7,所以取 1e-7。
兩個數字 A 、 B,
if ( |A-B| <1e-7 ) 則 A、B相等。
Ⅸ java中int和float能比較大小嗎
這個是可以比較的,結果是ture
public static void main(String[] args) {
int i=100;
float f=100.0f;
System.out.println(i==f);
}
至於i>f 和i<f 均為false
Ⅹ Java中float和double的取值范圍該怎樣理解
基本類型float佔4個位元組,二進制位數有32位,取值范圍為[-3.40282346638528860e+38 , -1.40129846432481707e-45] ∪ [1.40129846432481707e-45 ~ 3.40282346638528860e+38]。
基本類型double佔8個位元組,二進制位數有64位,取值范圍為[-1.79769313486231570e+308,-4.94065645841246544e-324] ∪ [4.94065645841246544e-324,1.79769313486231570e+308] 。
PS:其中e代表10的多少次方。
IEEE二進制浮點數算術標准(IEEE 754)是20世紀80年代以來最廣泛使用的浮點數運算標准,為許多CPU與浮點運算器所採用。這個標準定義了表示浮點數的格式(包括負零-0)與反常值(denormal number)),一些特殊數值(無窮(Inf)與非數值(NaN)),以及這些數值的「浮點數運算符」;它也指明了四種數值舍入規則和五種例外狀況(包括例外發生的時機與處理方式)。
(10)javafloat大小擴展閱讀:
Java有兩種浮點數據類型,第一種float使用32 bit表示,對應單精度浮點數,運行速度相比double更快,占內存更小,但是當數值非常大或者非常小的時候會變得不精確。精度要求不高的時候可以使用float類型。double為64位表示,將浮點數賦給某個變數時,如果不字面值後面加f或者F,則默認為double類型。java.lang.Math中的函數都採用double類型。如果double和float都無法達到想要的精度,可以使用BigDecimal類。