1. 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] 。
(1)javadouble表示扩展阅读
基本数据类型的特点,位数,最大值和最小值。
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)
2. java编程,int和double分别在什么情况用
int表示整数类型,只要需要存放的数据是数字并且是整数的(注意是整数)就可以用该类型,像存放人的数量的时候,就应该用这个来表示,没有说0.1个人的!
double表示双精度类型,通俗来讲若你想存放数字且带小数点的(即小数)就可以用该类型,像银行系统,表示货币的时候它需要精确到分、毫等,就可以用这个!
3. 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不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。
4. java中double值是非数字值是什么意思
double 类型有 1 个非数字的特殊值,0.0 除以0 或对一个负数开方会得到 Double.NaN,表示非数字。可用如下代码测试:
doublea=0.0/0;
System.out.println(a);//输出NaN
System.out.println(Double.isNaN(a));//true
Double.isNaN(a) 返回 true,所以 a 是一个非数字值。
5. java中double类数组要怎样才能精确到有几位小数点
double的表示方式如下:
符号位(1位)
|
指数(11位,1位符号位+10位指数位)
|
尾数(52位)
存储方式是按照浮点的形式存储,所以不存在整数部分和小数部分。比如1678.3456
=
1.6783456
*
10^3,但计算机只认识0、1,所以要将其转化成二进制小数,我们不管转换后的结果如何,转换后得到的浮点数形式肯定是这种1.xxxxxx
*
2
^
y,其中xxxxxx表示小数部分,就是尾数,而小数点前面始终是1,可以不存储,y就是指数部分。
所以上面的1.xxxxxx
*
2^y在计算机中就表示为:
0
|
y
+
127
|
xxxxxx
最前面的符号位为0表示正;指数存储时要加上127;xxxxxx就是尾数。
float的表示方法类似,只是位数不一样,如下:
符号位(1位)
|
指数(8位)
|
尾数(23位)
6. Java语言中的浮点型数据的float和double的单精度和双精度到底是啥意思
主要有下面几个区别,手册上的,希望能帮到你
1、变量类型不同
float属于单精度型浮点数据。
double属于双精度型浮点数据。
2、指数范围不同
float的指数范围为-127~128。
double而double的指数范围为-1023~1024
3、表达式指数位不同
float的表达式为1bit(符号位)+8bits(指数位)+23bits(尾数位)
double的表达式为1bit(符号位)+ 11bits(指数位)+ 52bits(尾数位)
4、占用内存空间不同
float占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38。
double占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308。
5、有效位数不同
float只能提供七位有效数字。
double可提供16位有效数字。