你會如何將float轉換爲int?
這取決於你想要發生的小數部分。
如果你想砍掉它,你可以投:
float floatValue = 2.7f;
int value = (int)floatValue;
System.out.println(value); // 2
如果你想詳談,使用JDK的庫中的各種取整方法,如Math.round(float)
。
float floatValue = 2.7f;
int value = Math.round(floatValue);
System.out.println(value); // 3
回覆您的評論:
我尋找更多的方式來查找值的倒數,而不是舍入值。例如,如果我有0.25作爲我的值,那麼我想接收4爲我的輸出等
如果倒數是一個以上的值,則:
float input = 0.25f;
int recip = (int)(1.0f/input);
System.out.println(recip); // 4
.. 。它剔除任何小數部分,或者
float input = 0.25f;
int recip = Math.round(1.0f/input);
System.out.println(recip); // 4
......將其四捨五入。 (還有其他的舍入方法,讓你的一半以上,達到與半降與半甚至控制,對向零舍入,而不是正無窮大,等等)
邊注:有幾乎從來沒有一個很好的理由使用float
而不是double
。並注意小數常數,例如2.0
,分別是double
s。如果您想要float
s,請在末尾輸入f
:2.0f
。但是,再次使用double
。 :-)
整數不能存儲十進制數字。你可以投,但是你丟失了數據 – ItamarG3
'float recip = 1 /(float)foo;'。或者'float recip = 1F/foo'。 –
'float recip = 1/foo'不會給你一個int的倒數,它會給你'0';你甚至嘗試過嗎?而且,嘗試'1/input'還有多遠? –