首頁  >  文章  >  Java  >  Java中如何將float轉換為long或int? (附代碼)

Java中如何將float轉換為long或int? (附代碼)

不言
不言轉載
2019-03-07 16:00:3210685瀏覽

這篇文章帶給大家的內容是關於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中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除