2012-02-04 54 views
1

我寫了以下內容,但Java不喜歡它!Java - 這個變量初始化代碼有什麼問題?

int limit = Math.round(Math.sqrt(inputNumber)); 

從我的IDE建議對的(int)鑄造添加到右側,但我的印象是,Math.round將格式化數字爲整數呢?

+2

只看文檔,sqrt返回double,round(double)返回long .. – user1130005 2012-02-04 22:40:13

回答

4

Math.sqrt(x)返回double。有幾個超載的功能。以double作爲參數的那個將返回long,而不是int

0

見的java.lang.Math

靜態長的API:輪(雙一)
靜態INT:圓形(浮起)

靜態雙:SQRT(雙一)

Math.sqrt返回double
當您向Math.round發送一個double時,它將返回一個
所以,Math.round(Math.sqrt(inputNumber))返回一個很長的時間,並且您必須將其轉換爲整數。

0

因爲Math.sqrt返回doubleMath.round版本被調用返回一個long,但是你想把它變成一個int,因此IDE建議。