這篇文章帶給大家的內容是關於Java中如何將float轉換為long或int? (附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
在Java中,有三種方法可以將float轉換為long或int,但我們只專注於long資料型別部分。
將float資料型別轉換為long值的第一種方法是將auto-box float原語轉換為float物件並呼叫longValue()方法。
這是一種更結構化的方法,因為其他方法只是簡單地將float轉換為long或int以去掉小數點。
也可以依照以下提示編寫Java程序,透過將long方法替換為對應的int方法,將float轉換為int。
另外,也可以使用Math.round()然後轉換回long資料型別。
第二種方法是最簡單的,如果只是去掉小數點後的數字,但如果需要四捨五入,那麼第三種方法是最好的將float資料型別轉換為long。
在本文中,將學習在Java中執行float到long轉換的三種方法。
在Java中將float轉換為long的3種方法
#方案一- Casting
Java支援類型轉換,它是將一種資料類型轉換為另一種資料類型的,但只能將較高的值轉換為較低的值。由於float的範圍比long長,因此可以使用類型轉換將其轉換為long,如下所示:
float number = 444.33f; long aValue = (long) number; // 444
它不會做任何事情,只是丟棄小數點後的值,因此將在fromFloat變數中得到3的值。
如果想把float轉換成 int,那麼你應該把float轉換成整數數,而不是轉換成long型數,這是最簡單的轉換方法。
解決方案2 - Float.longValue
將float轉換為long的另一種方法是先將float值自動裝入Float包裝對象,然後呼叫Float.longValue() 方法。此方法在內部將浮點值轉換為long,如上圖和下面的程式碼所示:
public long longValue(){ return(long)value; }
以下是如何使用此方法進行轉換:
Float PIE = 3.14f; long fromFloat = PIE.longValue();
當你具有Float物件而不是float原始值時,此方法較為合適。
解決方案3 - Math.round和Casting
有時轉換並不像丟棄小數點後的內容那麼簡單。可能需要先進行舍入,然後再進行轉換。如果是這種情況,那麼可以使用Math.round()方法先進行舍入,再進行型別轉換,將double轉換為long,Math.round()方法傳回一個double值。以下是實現這種轉換的範例程式碼:
// 使用Math.round()并强制转换为long float points = 333.322f; long rounded = Math.round(points); System.out.printf("float : %f, long : %d %n", points, rounded); points = 333.922f; rounded = Math.round(points); System.out.printf("float : %f, long : %d %n", points, rounded); Output : float : 333.321991, long : 333 float : 333.921997, long : 334
可以看到舍入的效果,在第一個範例中,float是向下舍入的,這就是為什麼轉換的long值是333,而在第二個範例中它被舍入,這就是為什麼long值為334.
Java程式將float轉換為long資料型別
下面程式碼所示,它結合了三種方法將float轉換為long。可以看到它們是如何運作的,並學習如何執行另一個類似的轉換技術,如float to int,short或byte或double to long,int,short和byte。
/** * 用于在Java中将float转换为long * * @author Javarevisited */ public class FloatToLongConverter{ public static void main(String[] args) { // Autobox浮动到Float然后调用Float.longValue(); Float PIE = 3.14f; long fromFloat = PIE.longValue(); System.out.printf("float value %f, long value %d %n", PIE, fromFloat); // 简单的类型转换来消除小数 float number = 444.33f; long aValue = (long) number; System.out.printf("float value %f, after casting into long %d %n", number, aValue); // 使用Math.round()并将其转换回long float points = 333.322f; long rounded = Math.round(points); System.out.printf("float : %f, long : %d %n", points, rounded); } } Output : float value 3.140000, long value 3 float value 444.329987, after casting into long 444 float : 333.321991, long : 333
這就是如何在Java中將float轉換為long資料型別。如果你只是刪除十進制值,類型轉換是最簡單的方法。這不是在Java中舍入數字的唯一方法,但它適用於大多用途。
如果你想更快、更有系統的學習,快來加入群聊,裡面有阿里、百度面試試題、Java工程化、高效能及分散式、微服務、效能調優Spring、MyBatis ,Netty原始碼分析等知識點的解說【Java架構師資源共享群】(群號142019080),直接點選連結加群。 https://jq.qq.com/?_wv=1027&k=5lXBNZ7
以上是Java中如何將float轉換為long或int? (附代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!