[七]基础数据类型之Float详解

属性简介
用来以二进制补码形式表示 float 值的比特位数 | public static final int SIZE = 32; |
二进制补码形式表示 float 值的字节数 | public static final int BYTES = SIZE / Byte.SIZE; |
表示基本类型 float 的 Class 实例 | public static final Class<Float> TYPE = (Class<Float>) Class.getPrimitiveClass("float"); |
能够表示的最大值 只有标准化一种形式,也就是前文提到过的 ![]() |
public static final float MAX_VALUE = 0x1.fffffeP+127f; |
标准化的最小值![]() |
public static final float MIN_NORMAL = 0x1.0p-126f; |
最小值还有非标准化的形式![]() |
public static final float MIN_VALUE = 0x0.000002P-126f; |
正无穷 它等于 Float.intBitsToFloat(0x7f800000) 返回的值 |
public static final float POSITIVE_INFINITY = 1.0f / 0.0f; |
负无穷 它等于 Float.intBitsToFloat(0xff800000) 返回的值 |
public static final float NEGATIVE_INFINITY = -1.0f / 0.0f; |
NaN not a number 它等于 Float.intBitsToFloat(0x7fc00000) 返回的值 |
public static final float NaN = 0.0f / 0.0f; |
指数真值的有效的最大值 | public static final int MAX_EXPONENT = 127; |
指数真值的有效的最小值 | public static final int MIN_EXPONENT = -126; |
构造方法
Float(float value) |
![]() |
Float(String s) |
![]() |
Float(double value) |
直接强转![]() |
常用方法

Float 获取表示形式 对于获取表示形式 提供了两种形式的方法,主要是针对于非数字的NaN的不同表示 他们可以与intBitsToFloat 可以进行互相转换
|
||||
将表示形式转换为Float,返回对应于给定位表示形式的 float 值 本地方法 其实就是按照布局计算float ![]() 如果参数为 0x7f800000,则结果为正无穷大
如果参数为 0xff800000,则结果为负无穷大
如果参数值在 0x7f800001 到 0x7fffffff 或在 0xff800001 到 0xffffffff 之间,则结果为 NaN
Java 提供的任何 IEEE 754 浮点操作都不能区分具有不同位模式的两个同类型 NaN 值
不同的 NaN 值只能使用 Float.floatToRawIntBits 方法区分
|
static boolean isNaN(float v) |
静态方法 是否一个非数字 (NaN) 值 非数值 true ![]() |
static boolean isFinite(float f) |
静态方法 是否是有限的浮点数 有限的true ![]() |
static boolean isInfinite(float v) |
静态方法 是否是无穷大 是无穷大 true ![]() |
boolean isInfinite() |
实例方法 依赖静态方法 ![]() |
boolean isNaN() |
实例方法
依赖静态方法
|
比较
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 系列
static String toString(float f) |
静态方法![]() |
String toString() |
实例方法 内部调用 static String toString(float f) ![]() |
static String toHexString(float f) |
静态方法 返回 float 参数的十六进制字符串表示形式 ![]() |
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
static int hashCode(float value) |
静态方法 获得一个value的hashcode值 ![]() |
int hashCode() |
实例方法 依赖静态方法 ![]() |
其他方法
sum(float, float) |
![]() |
max(float, float) |
![]() |
min(float, float) |
![]() |
总结
标准的一个实现,根本还是在于标准的理解
[七]基础数据类型之Float详解的更多相关文章
- [五]基础数据类型之Short详解
Short 基本数据类型short 的包装类 Short 类型的对象包含一个 short 类型的字段 原文地址:[五]基础数据类型之Short详解 属性简介 值为 215-1 ...
- [二]基础数据类型之Long详解
Long Long 基本数据类型long 的包装类 Long 类型的对象包含一个 long类型的字段 属性简介 值为 263-1 的常量,它表示 long 类型能够表示的最大值 ...
- [三]基础数据类型之Integer详解
Integer 基本数据类型int 的包装类 Integer 类型的对象包含一个 int 类型的字段 属性简介 值为 2^31-1 的常量,它表示 int 类型能够表示的最大值 @N ...
- [八]基础数据类型之Double详解
Double 基本数据类型double 的包装类 Double 类型的对象包含一个 double 类型的字段 属性简介 用来以二进制补码形式表示 double 值的比特位数 public sta ...
- [九]基础数据类型之Boolean详解
相对于其他的基础性 类型Boolean是很简单的 Boolean 基本数据类型boolean 的包装类 Boolean 类型的对象包含一个 boolean 类型的字段 属性简介 属性也比较 ...
- Python数据类型及其方法详解
Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知 ...
- VC++常用数据类型及其操作详解
原文地址:http://blog.csdn.net/ithomer/article/details/5019367 VC++常用数据类型及其操作详解 一.VC常用数据类型列表 二.常用数据类型转化 2 ...
- mysql基础篇 - SELECT 语句详解
基础篇 - SELECT 语句详解 SELECT语句详解 一.实验简介 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELEC ...
- Java基础-面向接口编程-JDBC详解
Java基础-面向接口编程-JDBC详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.JDBC概念和数据库驱动程序 JDBC(Java Data Base Connectiv ...
随机推荐
- 微信跳转技术,浏览器唤起微信,weixin://dl/business/?ticket=
weixin://dl/business/?ticket= 到底怎么生成的?调用以下接口 weixin://dl/scan 扫一扫weixin://dl/feedback 反馈weixin://dl ...
- Educational Codeforces Round 8
开始填坑_(:з」∠)_ 628A - Tennis Tournament 20171124 小学数学题,\((x,y)=((n-1)\cdot(2b+1),np)\) #include< ...
- Json对象与Json字符串的转化、JSON字符串与Java对象的转换
一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...
- DAY10函数
函数 函数就是可以重复利用的工具 函数可以完成指定代码块,函数就是是存放代码块的容器 函数的有点: 1.避免出现重复冗余的代码 2.让程序代码结构更清晰增加可读性 3 定义函数的语法 1. 函数名:使 ...
- linux下SS 网络命令详解
ss命令用来显示处于活动状态的套接字信息. ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容. 但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比n ...
- js中的单例模式
1.场景:当我们需要多人合作完成一个项目,但是有一些操作是同样的操作时(例如:点击按钮显示加载的遮罩层:例如:提交表单时的验证都是一样的),这个时候我们就需要单例模式: 2.什么是单例模式:是一种常见 ...
- webpack 解决 semantic ui 中 google fonts 引用的问题
semantic ui css 的第一行引用了 google web font api,由于不可告人而又众所周知的原因,这条链接在国内无法访问: @import url('https://fonts. ...
- Echarts 几个常用图
最近公司业务上的 需求,要求做一些图表,我们技术框架上选择方便使用的Echarts. 下面是效果图: 下面是具体代码: <!DOCTYPE html> <html> <h ...
- 深入理解Spring Redis的使用 (六)、用Spring Aop 实现注解Dao层的自动Spring Redis缓存
摘要: 主要针对Dao层的一些数据库查询的操作,数据实时性不强,直接加入缓存.当缓存中有的时候,就使用缓存中的数据.这样的方法,最终仅仅使用一个注解实现.对于之前的hibernate二级缓存使用,比较 ...
- Hive如何处理小文件问题?
一.小文件是如何产生的 1.动态分区插入数据,产生大量的小文件,从而导致map数量剧增. 2.reduce数量越多,小文件也越多(reduce的个数和输出文件是对应的). 3.数据源本身就包含大量的小 ...