Ⅰ 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中怎麼比較Double類型數據的大小
Double是一個包裝類,不是基本類型,和double是有區別,你可以把Double就看成一個普通的類型,所以類型在比較時都應該用equals
兩個對象通過==比都是不一樣的,所以對象應該用equals比
Ⅲ 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] 。
(4)doublejava大小擴展閱讀
基本數據類型的特點,位數,最大值和最小值。
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中怎麼比較Double類型數據的大小
第一種Double d = 1.4; double d1 = d.doubleValue();轉換成基礎類型用>,<,==可以比較;
第二種Double d =1.4; Double d2 = 1.4;用d.equals(d1)比較
第三種Double d =1.4; Double d2 = 1.4;用d.compareTo(d1)結果為0則表示相等,>0表示d大於d1,<0表示d小於d1
Ⅵ java double是多少位
java中double類型佔用8個位元組, 64位, 小米點精度是15位.
Ⅶ 在JAVA中怎麼比較Double類型數據的大小
你如果是要普通比較直接用數學符號即可,指的在其jvm允許的范圍內如果,你是要很准確的精度比較運算,由於精度問題,可能會有誤差,建議使用BigDecimal類型!
//普通比較
Doubleobj1=newDouble("0.001");
Doubleobj2=newDouble("0.0011");
obj1.compareTo(obj2);
//精度准確比較
doublea=obj1;
doubleb=obj2;
BigDecimaldata1=newBigDecimal(a);
BigDecimaldata2=newBigDecimal(b);
data1.compareTo(data2);
//該方法兩種類都有
publicintcompareTo(BigDecimalval)
/*將此BigDecimal與指定的BigDecimal比較。根據此方法,值相等但具有不同標度的兩個BigDecimal對象(如,2.0和2.00)被認為是相等的。相對六個boolean比較運算符(<,==,>,>=,!=,<=)中每一個運算符的各個方法,優先提供此方法。
*參數:val-將此BigDecimal與之比較的BigDecimal。
*返回:當此BigDecimal在數字上小於、等於或大於val時,返回-1、0或1。
*/
Ⅷ Java中Double的比較
Double沒有的,double有 Double是對象,看兩個對象是否值相同,調用 equals方法
這也是解決double精度比較的方法。另外還有一種方法,你可以用寫一個 double成員屬性,然後在eclipse中重寫equals方法,你會看到他是怎麼處理兩個double值是否相同的 sun公司用的是Double.doubleToLongBits(要比較的double值) != Double.doubleToLongBits(另一個double值) 這種方式
Ⅸ Java中是怎麼確定double的長度
你是想 輸出的時候 來控制 要輸出小數點後面的幾位還是 想知道 double 的最大長度?
1、
public static void fun(){
double cc = 9098.08876;
DecimalFormat aa = new DecimalFormat(".#"); // 幾個# 就是要幾位小數
System.out.println(aa.format(cc));
}
2、 double.MAX_VALUE 最大長度
Ⅹ Java中是怎麼確定double的長度
int x=a 就是給變數 x 定義了 int 的類型,a 就是這個變數的值,它是以二進制存儲的,例如數字 2在 Java 虛擬機中存儲為 0000 0010。
double 是一個浮點數的變數定義,為 64 位(bit),一個 double 型的數字變數,長度同樣是有限的,然而由於 double 變數不是用二進制來存儲的,所以也沒有多少人明白 double 類型變數的小數部分是怎樣存儲在虛擬機中的。你可以試著用 System.out.println 的方式在命令中列印出兩個double 變數 0.1+0.2 的和,結果為 0.3000.....4,這就是它不用二進制的方式存儲造成的結果。
如果你想確定的是一個數的長度(位數),我不知道 getLength 這個方法對數字有沒有作用,如果沒有的話就轉變成 String 的變數,再使用 getLength 的方法確定長度。
double n=0.1234567;
String N=Double.parseDouble(n);
這樣 N 這個變數就絕對能確定長度了,但是要注意的是,在 String 里,小數點同樣算作一位,不要忘記去掉!