2015-04-19 15 views
-2
int Asum,temp4; 
temp4=Math.sqrt(Asum); 

這是我寫的代碼的一部分。我已經將Asum和temp4聲明爲整數。我試圖獲得Asum的sqrt並將其分配給temp4。但由於某種原因,Java給了我錯誤:可能會失去精度。 REQD = INT。找到=雙倍。 我需要temp4和Asum是一個整數。並沒有必要得到精確的小數值,我只需要四捨五入的整數。sqrt需要int,但我已經在使用int

+2

閱讀Math.sqrt的javadoc的()。什麼是返回類型?它是int嗎? –

回答

1

您是否嘗試將顯式轉換添加到int以便編譯器知道您知道您在做什麼?

temp4= (int) Math.sqrt(Asum); 
+0

它的工作,謝謝! – SirVirgin

1

temp4不應該是整數...它可能是浮點數。

+1

它**必須**爲「雙」,否則OP必須將結果轉換爲適當的類型。 –

0

我想你需要使用Math.round函數。

嘗試:

temp4=Math.round(Math.sqrt(Asum)); 
+0

它仍然給我同樣的錯誤,但它會爲我的目的。謝謝! – SirVirgin

相關問題