包装类Float

Posted hyhy904

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包装类Float相关的知识,希望对你有一定的参考价值。

package java.lang;
import sun.misc.FloatingDecimal;
import sun.misc.FloatConsts;
import sun.misc.DoubleConsts;
public final class Float extends Number implements Comparable<Float>
// float的最大值。 它等于Float.intBitsToFloat(0x7f800000)返回的值。
public static final float POSITIVE_INFINITY = 1.0f / 0.0f;
// float的最小值。 它等于Float.intBitsToFloat(0xff800000)返回的值。
public static final float NEGATIVE_INFINITY = -1.0f / 0.0f;
// float类型的Not-a-Number值的常量。 它相当于返回的值Float.intBitsToFloat(0x7fc00000)
public static final float NaN = 0.0f / 0.0f;
// 最大正的有限值float
public static final float MAX_VALUE = 0x1.fffffeP+127f; // 3.4028235e+38f
// 最小正正常值
public static final float MIN_NORMAL = 0x1.0p-126f; // 1.17549435E-38f
// 最小的正非零值类型float
public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f
// 归一化float变量可能具有的最大指数
public static final int MAX_EXPONENT = 127;
// 归一化float变量可能具有的最小指数
public static final int MIN_EXPONENT = -126;
// 32字节 --> 8位
public static final int SIZE = 32;
// 用于表示 float值的字节数。
public static final int BYTES = SIZE / Byte.SIZE;
// 类原始类型 float的 类实例
@SuppressWarnings("unchecked")
public static final Class<Float> TYPE = (Class<Float>) Class.getPrimitiveClass("float");

// 将字符数据f转换成字符串
public static String toString(float f)
// sun包下面的源码,一般看不到
return FloatingDecimal.toJavaFormatString(f);


// 将float数据,转换成16进制
public static String toHexString(float f)
if (Math.abs(f) < FloatConsts.MIN_NORMAL
&& f != 0.0f )
// 调用的是Double中的实现方法,具体看Double源码
String s = Double.toHexString(Math.scalb((double)f,
DoubleConsts.MIN_EXPONENT-
FloatConsts.MIN_EXPONENT));
return s.replaceFirst("p-1022$", "p-126");

else // double string与float string相同
return Double.toHexString(f);


// 将数字字符串转化的float, 并返回新的Float对象
public static Float valueOf(String s) throws NumberFormatException
return new Float(parseFloat(http://www.amjmh.com));


// 获取float值
public static Float valueOf(float f)
return new Float(f);


// 将数字字符串转化的float
public static float parseFloat(String s) throws NumberFormatException
return FloatingDecimal.parseFloat(s);


// 是否是nan,永远为false
public static boolean isNaN(float v)
return (v != v);


// 是否是无限的float
public static boolean isInfinite(float v)
return (v == POSITIVE_INFINITY) || (v == NEGATIVE_INFINITY);

// 是否是无限的float
public static boolean isFinite(float f)
// f的绝对值大于float定义的中最大值,
return Math.abs(f) <= FloatConsts.MAX_VALUE;

--------------------- 

以上是关于包装类Float的主要内容,如果未能解决你的问题,请参考以下文章

关于double和float的包装类Double和Float代码如下 Double d1 = 1.0;Double d2 = 1.0;

常用类一一基本数据类型的包装类(WrapperClass)一一Byte Short nteger Long Float Double Character Boolean

Java SE-基本数据类型对应包装类

Java基本类型的类包装知识点总结

java - 工具类 - 包装类,数字相关类, 日期相关类

基本类型包装类System类