2014-01-31 29 views
4

我定義的方法如下所示float類型的一個參數:Java-爲什麼method參數將float值視爲double值?

float value = methodReturnTest.getValue(10.1201); 

我的IDE說:10.1201如下圖所示

public float getValue(float value){ 

    return value; 
} 

當我通過傳遞浮點值調用這個方法說將參數投入浮動。我試圖搜索,但無法得到合適的答案。所以張貼它。 請解釋。

謝謝。

+4

傳遞值爲..10.1201f..i.e。 'f'在結束..默認情況下,它需要兩倍 –

+2

http://stackoverflow.com/questions/9748160/why-f-is-placed-after-float-values – Reddy

+2

我相信這是歸結爲如何編譯器對待數字。在這種情況下,您可以使用'10.1201f'代替,它告訴編譯器將值視爲'float'而不是'double' – MadProgrammer

回答

11

Java需要10.1201作爲double。爲了傳遞一個float值,你應該追加f它是這樣的:

float value = methodReturnTest.getValue(10.1201f); 
+2

,否則您可以像 getValue((float)12.36565); – BRjava

2

你有一個浮點數後添加f。如果你不這樣做,Java將不知道該數字是否應該被視爲浮點數或雙精度。

float value = methodReturnTest.getValue(10.1201f); 
4

在java中Float Literals是通過在端否則被視爲雙字面用F指定。

執行這樣

float value = methodReturnTest.getValue(10.1201f); 
3

浮法是單精度的32位IEEE 754浮點和雙 是雙精度64位IEEE 754浮點。 當你使用一個帶小數點的值,如果你不指定爲0.23f(特別是浮點數),那麼java會將它標識爲double。

對於十進制值,double數據類型通常是java採用的默認選擇。 check this