Java中float和Float包装类_包装类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.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 TYPE = (Class) 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;

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值