您好,登錄后才能下訂單哦!
這篇文章主要介紹了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中將float轉換為long或int的方法有哪些內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。