A. 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 //正确
B. 在java中的double和float类型数据相除为什么可以除以零
java中就是这么规定的,没有什么为什么,具体规定如下:
任意整数(byte、short、int、long皆可)除以回整数0结果为ArithmeticException;
0除以浮点0结果为NAN,细分的话包括以下三种情况:
(1)0/0.0
(2)0.0/0.0
(3)0.0/0
情况(3)虽然除的是个整数0,但在运算过程中发生了类型转化变成了浮点0;
任意数(答八大基本类型皆可)除以浮点0结果为Infinity/-Infinity。
如果问为什么会这样,可以理解为在java中浮点数0并非一个准确值,而是一个无限接近0的数。
此外,Float.NaN!=Float.NAN,Double.NaN!=Double.NaN;但是Float.POSITIVE_INFINITY==Float.POSITIVE_INFINITY==Double.POSITIVE_INFINITY、
Float.NEGATIVE_INFINITY==Float.NEGATIVE_INFINITY==Double.NEGATIVE_INFINITY。
C. 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] 。
(3)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)
D. java 判断是float还是double
向参与运算的操作数的类型中的最高精度转型,所以答案是float类型。如果版有小数参与运算,则为double类型权,因为java默认小数直接量是double类型的。如:
int
n=100;
float
f=1.1f;
则n+f的结果是float类型的,而6.0+n+f的结果是double类型的。
E. 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
F. 在java中double型和float常量有什么区别啊
1.
我感觉你可能更想问的问题是:java中敏轿double和float类型有和区别?建议修改问题,把【常量】二字去掉;
2.
这两种数据类型的主要区别是:double取值范围和精度比float都要高;
3.
java中,次要区别是二者在变量定义上有些不同,比如:floath
a
=
2.3f;
double
a
=
2.3;float类型值后面有一贺卖个f;
4.
在很多环境下(java/C#.....)他们桥拍肆的区别大约都是以上这些。
G. 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不同,激弯不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。
H. java float和double的区别
单精度浮点数(float)与双精度浮点数(double)的区别如下:
(1)在内存中占有的字版节数不同
单精度权浮点数在机内占4个字节
双精度浮点数在机内占8个字节
(2)有效数字位数不同
单精度浮点数有效数字8位
双精度浮点数有效数字16位
(3)所能表示数的范围不同
单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38
双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308
(4)在程序中处理速度不同一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快
I. java double和float的区别
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在可能是两个不同的数字,但是受到浮点数表示精度的限制,有可能会错误的判断两个数相等!
J. java中float和double的取值范围是什么
1、float:4字节(32bit),IEEE 754。取值范围:
[-3.40282346638528860e+38 , -1.40129846432481707e-45] ∪ [1.40129846432481707e-45 ~ 3.40282346638528860e+38] 。
2、毁芹double: 8字节(64bit) ,IEEE 754。取值范围:
[-1.79769313486231570e+308,-4.94065645841246544e-324] ∪ [4.94065645841246544e-324,1.79769313486231570e+308] 。
float和double的范围精度
float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。纤携毕
float:2^23 = 8388608,共七位,意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
double:2^52 = 4503599627370496,一共16位,同理,隐汪double的精度为15~16位。