Java:将Double对象转换为float的更好方法

3 java casting

假设给了我一个Double对象d和一个接受原始浮点数的函数,是否有比double转换更好的方法将对象do传递给该函数?

Double fakePi = 3.14  
void function(float num) {}
Run Code Online (Sandbox Code Playgroud)

function(fakePi):返回编译错误,因为函数不接受Double对象作为参数

function((float) fakePi):返回编译错误,因为Double无法转换为float

function((float) (double) fakePi):编译并运行无错误

尽管这行得通,但我的直觉告诉我,有更好的方法可以做到这一点,并且我应该避免进行多种类型的转换,尤其是因为float,double和Double彼此密切相关。

小智 5

Double类具有floatValue()属性。

http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html

function(fakePi.floatValue());
Run Code Online (Sandbox Code Playgroud)