‘壹’ java定义float a = 2.0对吗
在java中,如果想定义基本类型是float型的数据,
就要在初始化的时候在数字后面明确的写上后缀f
否则将编译出错。
应该写成:
float a = 2.0f;
在java中小数默认处理为double类型的,但是要进行强制转换才可以把float型的数据转化成double型的
‘贰’ java中的float类型
java中的float类型
.浮点类型
1) 与整数类型一样,同样有固定的表述范围和字段长度,且不受具体的操作系统的影响,保证了Java的跨平台性
2) Java语言中,浮点类型有两种表现形式,分别是:
a. 十进制数形式, 如3.14
b. 科学计数法,如,3.14e2, 3.14e-2, -3.14E2
3) Java语言中,默认的浮点数类型是double,声明float类型的时候,后面必须添加字母f或者F,如3.14F,3.14f
4) Java中两种浮点类型的表述范围:
‘叁’ 问一下java Float 与float的区别
Float 是float的包装类,
其中包含了一些对于float的方法,float是没方法的属性的哦,
Float f1 = new Float(128)创建出来的是对象,保存在堆中
float f2 = 128 这个则是保存在栈中
小f = 大F是可以的
因为在java 5.0之后引入了自动封箱和拆箱
意思就是
小f = 大F执行这句的时候大F会拆箱成为小f,然后在赋值给小f
反过来也是对的
大F=小f这样小f就封箱成为一个大F在赋值了
‘肆’ Java float数据类型
与表示整数的整型不同,浮点型代表的是实数,其实就是包含小数的部分。我们也知道现实世界中是由很多复杂的数据的,所以需要这种表示实数的数据类型的支持。
一、浮点型常量
Java的实常数有两种表示形式:
1.十进制数形式,由数字和小数点组成,且必须有小数点,如0.123, .123, 123. ,123.0 。
2.科学计数法形式。如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。
实常数在机器中占64位,具有double型的值。对于float型的值,则要在数字后加f或F,如12.3F,它在机器中占32位,且表示精度较低。
二、浮点型变量
浮点型变量的类型有float和double两种。
数据类型所占位数的范围:
float 32位 3.4e-038~3.4e+038 ;
double 64位 1.7e-308~1.7e+308 ;
双精度类型double比单精度类型float具有更高的精度,和更大的表示范围,常常用于科学计算等高精度场合。
三、浮点型变量定义举例
float f; //指定变量f为float型
double d; //指定变量d为double型
与C、C++不同,Java中没有无符号型整数,而且明确规定了整型和浮点型数据所占的内存字节数,这样就保证了安全性、鲁棒性和平台无关性。
‘伍’ java中float与Float有什么区别
float是基本数据类型,Float是包装类(封装类)。封装类可将接本数据类型封装后当作对象进行操作,并为各种基本数据类型提供各种转换功能。
例如Float f = new Float(3.4f);,即可实现将3.4f这个float类型的基本数据类型变量封装,然后当作对象处理,进行诸如类型转换(转换为字符串或者十六进制数);也可通过Float类中的静态方法或者非静态方法将字符串转换为基本数据类型,例如float f = Float.parseFloat("12.3");。
‘陆’ java中的Float和float
float是原始数据类型,赋值方法
float b = 111.111f; //数字后面的f代表float类型,否则会报错
而Float,是对float的封装,是一个类,所以赋值时需要赋给一个对象
比如:
Float a = new Float(111.111);
但是上面这种方法效率并不高,一般采用下面的方法更好:
Float a = Float.valueOf(111.111f);
‘柒’ java中的float类型定义
答案是AD。A 中-1是int型的,能转为float型。B中1.0默认是double,不能转为float。C中3.03d也是double型的,不能转为float。D就不用说啦,肯定是对的。
‘捌’ java中float和double的区别...
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在可能是两个不同的数字,但是受到浮点数表示精度的限制,有可能会错误的判断两个数相等!
‘玖’ java 中float的取值范围
java.lang.Float定义的常量
public static final float MAX_VALUE;
public static final float MIN_VALUE;
‘拾’ java的float类型声明
-1是整数,整数赋给float不会有损失。将-1改成-1.0就不行了,就必须加f或F。