[七]基础数据类型之Float详解
Posted noteless
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[七]基础数据类型之Float详解相关的知识,希望对你有一定的参考价值。
Float 基本数据类型float 的包装类
Float 类型的对象包含一个 float 类型的字段
属性简介
这些属性,看过上一篇浮点数简介的话,可以很清晰的理解
构造方法
Float 依然提供了根据基本类型float以及float的String形式构造
String形式依然借助于parseXXX形式 parseFloat
另外,也提供了根据基本类型double进行构造的方式,内部直接强转
常用方法
Float提供了对于指定值的表示形式的获取方法, 这表示形式也就是是一个32位的二进制位序列
浮点数有几种特殊的表示,比如 无穷 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系列
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 系列
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
该定义使得哈希表得以正确操作。
|
hashCode
其他方法
总结
其实浮点数的表示形式与使用规范才是重点
Float只是float的包装,float也只是IEEE754
标准的一个实现,根本还是在于标准的理解
以上是关于[七]基础数据类型之Float详解的主要内容,如果未能解决你的问题,请参考以下文章