我们在java中的包装类Float中使用以下2个构造函数的方式之间有什么区别?
Float(float value)
和
Float (double value)
两个构造函数之间类似
Float(double value)
和
Double(double value)
答案 0 :(得分:3)
Float(float)
构造函数使用给定值创建Float
包装器对象。 Float(double)
构造函数创建并使用给定的参数转换为float
,从而失去double
值的一些精度。来自the source:
public Float(float value) {
this.value = value;
}
public Float(double value) {
this.value = (float)value;
}
另一方面,Double(double)
构造函数创建一个具有给定Double
值的double
包装器对象。
答案 1 :(得分:2)
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;
答案 2 :(得分:1)
Float(浮点值)和Float(double值)之间没有特别的区别,后者只是将double参数转换为float表示。
请参阅此方法的源代码:
public Float(float value) {
this.value = value;
}
public Float(double value) {
this.value = (float) value;
}
答案 3 :(得分:0)
当您具有一个精度的浮点值并且需要一个持有另一个精度的对象时,具有交叉类型构造函数只是一种方便。从double
移动到float
会失去精确度,并且从float
移动到double
会获得精度(但实际存储的值只会用零填充)。这两个构造函数相当于首先手动转换为另一个精度。