zoukankan      html  css  js  c++  java
  • 包装类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;

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

  • 相关阅读:
    阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat
    【数据结构与算法01】数组
    HashMap和Hashtable的区别 源码分析
    【JMS】JMS之ActiveMQ的使用
    日志框架只打印出Mybatis SQL的配置
    [C++]简单的udp通信
    [原][osg][osgearth]简单的通过osgDB,读取高程tif,修改高程tif
    [转] VR-FORCES 介绍
    写出漂亮的代码
    如果需要一个图形学算法
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11277903.html
Copyright © 2011-2022 走看看