Float 基本数据类型float 的包装类。Float 类型的对象包含一个 float 类型的字段。
— Java七个基础类型1 —
属性简介
![[七]基础类型Float_java_02](https://s2.51cto.com/images/blog/202106/01/f8872e0a3d7c86418b88a3ffd420c3a3.png?x-oss-process=image/resize,m_fixed,w_1184)
这些属性,看过上一篇浮点数简介的话,可以很清晰的理解 。
— 2 —
构造方法
Float 依然提供了根据基本类型float以及float的String形式构造。String形式依然借助于parseXXX形式 parseFloat。另外,也提供了根据基本类型double进行构造的方式,内部直接强转。
— 3 —
常用方法
对于浮点数,有一些额外的属性方法。我们浮点数介绍中,对于浮点数的表示形式进行了介绍:Float提供了对于指定值的表示形式的获取方法,这表示形式也就是一个32位的二进制位序列。
Float获取表示形式
对于获取表示形式 提供了两种形式的方法,主要是针对于非数字的NaN的不同表示,他们可以与intBitsToFloat 可以进行互相转换。
floatToRawIntBits讯享网 如果参数为正无穷大,则结果为 0x7f; 如果参数为负无穷大,则结果为 0xff; 如果参数为 NaN,则结果是表示实际 NaN 值的整数;
与 floatToIntBits 方法不同,floatToRawIntBits 不压缩所有将 NaN 编码为一个“规范”NaN 值的位模式。 在所有情况下,结果都是一个整数,将其赋予 intBitsToFloat(int) 方法将生成一个与 floatToRawIntBits 的参数相同的浮点值 本地方法
讯享网floatToIntBits如果参数为正无穷大,则结果为 0x7f 如果参数为负无穷大,则结果为 0xff 如果参数为 NaN,则结果为 0x7fc00000 在所有情况下,结果都是一个整数 将其赋予 intBitsToFloat(int) 方法将生成一个浮点值,该浮点值与 floatToIntBits 的参数相同 (而所有 NaN 值则会生成一个“规范”NaN 值) 依赖floatToRawIntBits
表示形式转换为Float
将表示形式转换为Float,返回对应于给定位表示形式的 float 值
本地方法
其实就是按照布局计算float![]()
如果参数为 0x7f,则结果为正无穷大如果参数为 0xff,则结果为负无穷大如果参数值在 0x7f 到 0x7fffffff 或在 0xff 到 0xffffffff 之间,则结果为 NaN Java 提供的任何 IEEE 754 浮点操作都不能区分具有不同位模式的两个同类型 NaN 值不同的 NaN 值只能使用 Float.floatToRawIntBits 方法区分
其他表示形式
浮点数有几种特殊的表示,比如 无穷 NaN等,额外的,也提供了一些相关的方法
比较
static int compare(float f1, float f2)
静态方法
比较两个float
f1 < f2 小于0
f1 = f2 等于0
f1 > f2 大于0
讯享网int compareTo(Float anotherFloat)
实例方法
两个对象进行大小比较,依赖于静态方法

parseXXX系列
字符串解析 为 基本类型,不需要对象,所以都是静态方法。返回一个字符串形式表示的基本类型float
表现效果同valueOf(String),不过valueOf 返回的是对象
如果String是null或者不包含可以解析的字符串将会抛出异常
底层依赖sun.misc.FloatingDecimal
valueOf系列
把基本基本类型 包装为对象。用来创建获得对象,所以无需对象,全都是静态方法。 不同于之前介绍的整数 数值,他们都有缓冲。float不存在缓存,valueOf也是直接new 对象。
static Float valueOf(float f)
static Float valueOf(String s)依赖parseFloat方法
所以上面说跟valueOf(String)表现效果相同,本身就是一样
Float没有 decode方法
XXXValue系列
类似之前介绍的其他数值类型,全部都是强转内部的 value,return (XXX)value;
byteValue()shortValue()intValue()longValue()floatValue()doubleValue()
toString toXXXString 系列
toString系列好像没什么好说的,又好像有很多要说的
用到的时候对于格式字符的规定有疑惑直接查看API
equals
boolean equals(Object obj)
将此对象与指定对象进行比较当且仅当参数不是 null 而是 Float 对象,且表示的 float 值与此对象表示的 float 值相同时,结果为 true为此,当且仅当将方法 #floatToLongBits(double) 应用于两个值所返回的 int 值相同时,才认为这两个 float 值相同 注意,在大多数情况下,对于 Float 类的两个实例 f1 和 f2,当且仅当f1.floatValue() == f2.floatValue()的值为 true 时,f1.equals(f2) 的值才为 true。但是,有以下两种例外情况:如果 f1 和 f2 都表示 Float.NaN,那么即使 Float.NaN==Float.NaN 的值为 false,equals 方法也将返回 true所以此处使用的是floatToIntBits,而不是raw的 如果 f1 表示 +0.0f,而 f2 表示 -0.0f,或相反,那么即使 0.0f==-0.0f 的值为 true,equal 测试也将返回 false该定义使得哈希表得以正确操作。
![image_5bbad0f2_70a3 [七]基础类型Float_java_06](https://s2.51cto.com/images/blog/202106/01/8c07a9e674ab8d14ea244c1f831c4802.png?x-oss-process=image/resize,m_fixed,w_1184)
hashCode
![[七]基础类型Float_java_07](https://s2.51cto.com/images/blog/202106/01/40b6c84ba656db8373ff8de099fc305c.png?x-oss-process=image/resize,m_fixed,w_1184)
其他方法
![[七]基础类型Float_java_08](https://s2.51cto.com/images/blog/202106/01/460da5a964da21331d68ca96775e88f0.png?x-oss-process=image/resize,m_fixed,w_1184)
max(float, float)
min(float, float)
总结
其实浮点数的表示形式与使用规范才是重点。Float只是float的包装,float也只是IEEE754 标准的一个实现,根本还是在于标准的理解。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/9311.html