2013-08-19 108 views
2

是什么,使我们在java中使用下列2层构造的包装类浮动方式之间的差别 Float(float value)Float (double value)Float类的构造函数

2名建设者之间

同样 Float(double value)Double(double value)

回答

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)构造,另一方面创建具有给定doubleDouble包装对象。

0

具有交叉类型构造函数只是一个方便,当你有一个精度的浮点值并且需要一个持有另一个的对象时。从double移动到float会丢失精度,并且从float移动到double获得精度(但实际存储值将只填充零)。这两个构造函数相当于首先手动转换为其他精度。

2

Have a look at source code

 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;

1

有浮子(float值)之间没有特定的差异和Float(双值),后者只投双参数浮动表示。这种方法

见源代码:

public Float(float value) { 
    this.value = value; 
} 

public Float(double value) { 
    this.value = (float) value; 
}