包装类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;

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

转载于:https://www.cnblogs.com/hyhy904/p/11277903.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值