這篇文章主要介紹了Java中將float轉(zhuǎn)換為long或int的方法有哪些,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)專注于朝陽企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站定制開發(fā)。朝陽網(wǎng)站建設(shè)公司,為朝陽等地區(qū)提供建站服務(wù)。全流程按需定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
在Java中,有三種方法可以將float轉(zhuǎn)換為long或int,但我們只關(guān)注long數(shù)據(jù)類型部分。
將float數(shù)據(jù)類型轉(zhuǎn)換為long值的第一種方法是將auto-box float原語轉(zhuǎn)換為float對象并調(diào)用longValue()方法。
這是一種更結(jié)構(gòu)化的方法,因為其他方法只是簡單地將float轉(zhuǎn)換為long或int以去掉小數(shù)點(diǎn)。
也可以按照以下提示編寫Java程序,通過將long方法替換為對應(yīng)的int方法,將float轉(zhuǎn)換為int。
另外,還可以使用Math.round()然后將其轉(zhuǎn)換回long數(shù)據(jù)類型。
第二種方法是最簡單的,如果只是去掉小數(shù)點(diǎn)后的數(shù)字,但如果需要四舍五入,那么第三種方法是最好的將float數(shù)據(jù)類型轉(zhuǎn)換為long。
在本文中,將學(xué)習(xí)在Java中執(zhí)行float到long轉(zhuǎn)換的三種方法。
在Java中將float轉(zhuǎn)換為long的3種方法
方案一- Casting
Java支持類型轉(zhuǎn)換,它是將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型的,但只能將較高的值轉(zhuǎn)換為較低的值。由于float的范圍比long長,因此可以使用類型轉(zhuǎn)換將其轉(zhuǎn)換為long,如下所示:
float number = 444.33f; long aValue = (long) number; // 444
它不會做任何事情,只是丟棄小數(shù)點(diǎn)后的值,因此將在fromFloat變量中得到3的值 。
如果想把float轉(zhuǎn)換成 int,那么你應(yīng)該把float轉(zhuǎn)換成整型數(shù),而不是轉(zhuǎn)換成long型數(shù),這是最簡單的轉(zhuǎn)換方法。
解決方案2 - Float.longValue
將float轉(zhuǎn)換為long的另一種方法是首先將float值自動裝入Float包裝對象,然后調(diào)用Float.longValue() 方法。此方法在內(nèi)部將浮點(diǎn)值轉(zhuǎn)換為long,如上圖和下面的代碼所示:
public long longValue(){
return(long)value;
}以下是如何使用此方法進(jìn)行轉(zhuǎn)換:
Float PIE = 3.14f; long fromFloat = PIE.longValue();
當(dāng)你具有Float對象而不是float原始值時,此方法更合適。
解決方案3 - Math.round和Casting
有時轉(zhuǎn)換并不像丟棄小數(shù)點(diǎn)后的內(nèi)容那樣簡單。可能需要先進(jìn)行舍入,然后再進(jìn)行轉(zhuǎn)換。如果是這種情況,那么可以使用Math.round()方法先進(jìn)行舍入,再進(jìn)行類型轉(zhuǎn)換,將double轉(zhuǎn)換為long,Math.round()方法返回一個double值。下面是實現(xiàn)這種轉(zhuǎn)換的示例代碼:
// 使用Math.round()并強(qiáng)制轉(zhuǎn)換為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是向下舍入的,這就是為什么轉(zhuǎn)換的long值是333,而在第二個示例中它被舍入,這就是為什么long值為334.
Java程序?qū)loat轉(zhuǎn)換為long數(shù)據(jù)類型
下面代碼所示,它結(jié)合了三種方法將float轉(zhuǎn)換為long。可以看到它們是如何工作的,并學(xué)習(xí)如何執(zhí)行另一個類似的轉(zhuǎn)換技術(shù),如float to int,short或byte或double to long,int,short和byte。
/**
* 用于在Java中將float轉(zhuǎn)換為long
*
* @author Javarevisited
*/
public class FloatToLongConverter{
public static void main(String[] args) {
// Autobox浮動到Float然后調(diào)用Float.longValue();
Float PIE = 3.14f;
long fromFloat = PIE.longValue();
System.out.printf("float value %f, long value %d %n", PIE, fromFloat);
// 簡單的類型轉(zhuǎn)換來消除小數(shù)
float number = 444.33f;
long aValue = (long) number;
System.out.printf("float value %f, after casting into long %d %n", number, aValue);
// 使用Math.round()并將其轉(zhuǎn)換回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轉(zhuǎn)換為long數(shù)據(jù)類型。如果你只是刪除十進(jìn)制值,則類型轉(zhuǎn)換是最簡單的方法。這不是在Java中舍入數(shù)字的唯一方法,但它適用于大多用途。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Java中將float轉(zhuǎn)換為long或int的方法有哪些內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!
網(wǎng)頁題目:Java中將float轉(zhuǎn)換為long或int的方法有哪些
文章路徑:http://www.chinadenli.net/article40/gpciho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、手機(jī)網(wǎng)站建設(shè)、外貿(mào)建站、網(wǎng)站設(shè)計、網(wǎng)站維護(hù)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)