我们在java中的包装类Float中使用以下2个构造函数的方式有什么区别
Float(float value)
和
Float (double value)
同样在 2 个构造函数
Float(double value)
和
Double(double value)
我们在java中的包装类Float中使用以下2个构造函数的方式有什么区别
Float(float value)
和
Float (double value)
同样在 2 个构造函数
Float(double value)
和
Double(double value)
Float(float)
构造函数创建一个具有给定值的Float
包装对象。构造Float(double)
函数使用强制转换为的给定参数创建和对象,从而float
失去了一些double
值的精度。从来源:
public Float(float value) {
this.value = value;
}
public Float(double value) {
this.value = (float)value;
}
Double(double)
另一方面,构造函数创建具有给定值的Double
包装对象。double
public More ...Float(float value) {
480 this.value = value;
481 }
Constructs a newly allocated Float object that represents the argument converted to type float.
Parameters:
value the value to be represented by the Float.
488
489 public More ...Float(double value) {
490 this.value = (float)value;
491 }
只是铸造this.value = (float)value;
Float(float value)和Float(double value)之间没有具体的区别,后者只是将double参数转换为float表示。
查看此方法的源代码:
public Float(float value) {
this.value = value;
}
public Float(double value) {
this.value = (float) value;
}
当你有一个精度的浮点值并且需要一个对象来保存另一个精度时,拥有跨类型构造函数只是一种方便。从double
到移动会float
失去精度,从float
到移动会double
获得精度(但存储的实际值只会用零填充)。这两个构造函数相当于首先手动转换为另一个精度。