创建 Float 对象

java.lang包中的Float类在对象中包装了一个基本类型Float的值。

Float类的构造方法

构造方法 使用说明
Float(double value) 构造一个新分配的Float对象,表示转换为float类型的参数
Float(float value) 构造一个新分配的Float对象,表示基本的float参数
Float(String str) 构造一个新分配的Float对象,表示用字符串表示的float类型的浮点值
    public static void main(String[] args) {
        Float f1 = new Float(3.1415);
        Float f2 = new Float("3.14");
        Float f3 = new Float(Double.NaN);
    }

valueOf() 创建浮点数对象

返回表示指定的float值的Float实例。如果不需要新的Float实例,则通常应优先使用此方法,而不是构造方法Float(float),因为此方法可能通过缓存经常请求的值来显著提高空间和时间性能。

✍方法声明

public static Float valueOf(float f);

  • 📥入参:f为一个指定的浮点值。
  • 🪐返回值:一个表示f的Float实例。

下面代码创建Float对象f,并通过Float类的toString()方法获取对象f的参数值的字符串表示形式。

    public static void main(String[] args) {
        Float f1 = Float.valueOf(-1.99f);
        Float f2 = Float.valueOf(9.960000f);
        Float f3 = Float.valueOf(3.75F);
        Float f4 = Float.valueOf(.618F);
        System.out.println(f1);
        System.out.println(f2);
        System.out.println(f3);
        System.out.println(f4);
    }

小数点前面的 0 可以省略,小数点后面的零会被舍弃:

-1.99
9.96
3.75
0.618

✍方法声明

返回指定字符串的float值的Float对象。如果字符串不包含可解析的数字,则抛出异常。

public static Float valueOf(String s) throws NumberFormatException;

  • 📥入参:s为一个指定要解析的String。
  • 🪐返回值:保存用String参数表示的值的Float对象。
  • 🐛抛出异常NumberFormatException:如果字符串不包含可解析的数字。
    public static void main(String[] args) {
        Float f1 = Float.valueOf("-1.99F");
        Float f2 = Float.valueOf("9.960000");
        Float f3 = Float.valueOf("3.75D");
        Float f4 = Float.valueOf(".618f");
        System.out.println(f1);
        System.out.println(f2);
        System.out.println(f3);
        System.out.println(f4);
    }
140.0
-2.5E-4
    public static void main(String[] args) {
        Float f1 = Float.valueOf("1.4E2");
        Float f2 = Float.valueOf("-2.5E-4");
        System.out.println(f1);
        System.out.println(f2);
    }
NaN
Infinity
    public static void main(String[] args) {
        Float f1 = Float.valueOf("NaN");
        Float f2 = Float.valueOf("Infinity");
        System.out.println(f1);
        System.out.println(f2);
    }
NaN
Infinity

需要注意的是,这里的特殊值区分大小写,大小写不匹配就会抛出异常:

    public static void main(String[] args) {
        Float f1 = Float.valueOf("Nan"); //java.lang.NumberFormatException: For input string: "Nan"
        Float f2 = Float.valueOf("infinity");//java.lang.NumberFormatException: For input string: "infinity"
    }

📝总结

💡 Float类的构造方法接受float类型、double类型和String类型的参数。
💡 valueOf()方法是一种创建Float对象的推荐方式,特别是当需要频繁创建相同数值的Float对象时,因为它可能通过缓存来提高性能。
💡 在处理字符串表示的浮点数时,应该注意字符串必须包含一个可解析的数字,否则会抛出NumberFormatException。
💡 特殊浮点数值(如NaN和Infinity)在字符串中应该注意大小写。

转载请注明出处:码谱记录 » 创建 Float 对象
标签: