Ⅰ 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 里,小数点同样算作一位,不要忘记去掉!