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
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
-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
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
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)在字符串中应该注意大小写。