[七]基础数据类型之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 ...
随机推荐
- DevExpress内 GridControl中复选框值问题
在DevExpress的 GridControl内的复选柜勾选后,界面看到是勾选状态,但对应的DataView的值仍未变,在以下事件内处理 在对应的DataView内的 CellValueChangi ...
- 读取 ini 配置文件
ini 配置文件格式:db_config.ini '''[section]option=value''' [DATABASE1] host=192.168.30.80 port= user=testa ...
- python学习:列表
列表 a = ['abc','bcd','cde','def','efg']print(a)列表的操作:增删改查 1)查:切片print(a[1:3]) #从'bcd'取到'cde',列表取值顾头不顾 ...
- vue中实现图片全屏缩放预览,支持移动端
# 安装 npm install vue-photo-preview --save # 引入 import preview from 'vue-photo-preview' import 'vue-p ...
- session源码剖析
session机制采用的是一种在客户端与服务端之间保持状态的解决方案,由于采用服务器端保持状态的方案在客户端也要保存标识,session机制也要借助于cookie机制达到目的.session保存了客户 ...
- go语言的for循环
for循环是一个循环控制结构,可以执行指定次数的循环. 三种循环方式 第一种,常见的 for 循环,支持初始化语句 for init; condition; post { } init: 一般为赋值表 ...
- 32、可以拿来用的JavaScript实用功能代码
可以拿来用的JavaScript实用功能代码(可能会有些bug,用时稍微修改下,我用了几个还可以) 转载自 1.原生JavaScript实现字符串长度截取 function cutstr(str, l ...
- Python3定时短信获得天气
getWeather 脚本链接:https://github.com/Mrlshadows/getWeather Python环境为 python3 两个API 注册后即可使用免费版本的服务 心知天气 ...
- Android Studio 错误: 非法字符: '\ufeff'
右下角:选UTF-8 convert一下,再重新编译..不知道为什么,本来好像就是UTF-8好奇怪. 还看到一个方法但我没试过,放在这里万一下次又遇见了这样的问题呢 右下角将UTF-8 convert ...
- 算法与数据结构(十一) 平衡二叉树(AVL树)(Swift版)
今天的博客是在上一篇博客的基础上进行的延伸.上一篇博客我们主要聊了二叉排序树,详情请戳<二叉排序树的查找.插入与删除>.本篇博客我们就在二叉排序树的基础上来聊聊平衡二叉树,也叫AVL树,A ...