2017-07-30 124 views
0

自(這裏小白)學習編碼,回答實踐問題如下:四捨五入浮動爲int

amount = (int) round (c);

c是浮動。 可以肯定地說這行通過四捨五入將浮點數轉換爲整數嗎? 我試圖研究將浮點數轉換爲整數的方法,但沒有使用上面的語法。

+0

多德學習Java中鑄造基本類型。這是非常基本的。請在堆棧溢出發佈這些類型的問題之前瀏覽。 – Popeye

+0

目前我只做到'C',但會考慮到Java上的那些。謝謝。 – COBB87

+0

@ COBB87你應該提及你正在編寫代碼的語言 –

回答

1

你應該看看round的返回值。
如果它返回一個浮點數,那麼你的int轉換不會失去精度,並將浮點數轉換爲int
如果它返回一個int,那麼轉換髮生在函數中,並且不需要再嘗試轉換它。

這當然是,如果你真的想要整數。如果你想10.8成爲11,那麼你的代碼是一個可能的解決方案,但是如果你想要它變成10,那麼只需將它轉換(轉換)爲int即可。

+0

將32位'float'轉換爲32位'int' _does_對於大於約2 ** 23的許多值丟失精度。 – chux

0

我只想做amount = int(c)

下面是一個完整的例子

amount = 10.3495829 
amount = int(amount) 
print(amount) 

它應該打印10!

1

float具有比整數原始值更高的範圍,這意味着float大於int。由於這一事實,你可以只是一個浮動轉換爲int下澆鑄

int value = (int) 9.99f; // Will return 9 

只要注意,這個類型轉換會截斷小數點後的一切,也不會執行任何舍入或地板操作價值。 正如你從上面的例子看到的,如果你的浮點數是9.999,(下)轉換爲整數將返回9。但是,如果需要四捨五入,則使用Math.round()方法,該方法通過將float的值加上+0.5並將其截斷,將float轉換爲最接近的整數。

Java tutorial , primitive datatypes

Java language specifications, casting of primitive types

+0

嗯..問題被標記爲'C' – bolov