Java怎樣保留兩位小數(shù)

這篇文章主要介紹了Java怎樣保留兩位小數(shù),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)是一家專(zhuān)注于成都做網(wǎng)站、網(wǎng)站制作與策劃設(shè)計(jì),鞏義網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:鞏義等地區(qū)。鞏義做網(wǎng)站價(jià)格咨詢:028-86922220

項(xiàng)目中有一個(gè)小需求,兩個(gè)整數(shù)相除,結(jié)果需要保留兩位小數(shù),即1.00、0.50這種數(shù)據(jù)格式。

以下做法不行,因?yàn)閮烧麛?shù)相除,小數(shù)點(diǎn)以后的數(shù)字會(huì)被截?cái)?,讓運(yùn)算結(jié)果為整數(shù)類(lèi)型,

int x = 10;
int y = 20;
int a = x/y;

System.out.println(a);

// 輸出0

System.out.println(x/y);

// 輸出0

System.out.println((float)(x/y));

// 輸出0.0

此時(shí)需要運(yùn)算結(jié)果為浮點(diǎn)數(shù),則此時(shí)必須將兩整數(shù)其一或是全部強(qiáng)制轉(zhuǎn)換類(lèi)型為浮點(diǎn)數(shù),

float b = (float)x/y;
float c = x/(float)y;
float d = (float)x/(float)y;

System.out.println(b);

// 輸出0.5

System.out.println(c);

// 輸出0.5

System.out.println(d);

// 輸出0.5

為了控制保留兩位小數(shù),需要進(jìn)行格式化,

DecimalFormat df = new DecimalFormat("0.00");

String e = df.format(b); // 此處可以用上面b/c/d任意一種

System.out.println(e);

// 輸出0.50

String e = df.format(a);

System.out.println(e);

// 輸出0.00,由于a是int類(lèi)型值,格式化之前x/y已經(jīng)為整數(shù)0,因此此處只增加兩位小數(shù)0

網(wǎng)上有一種寫(xiě)法,用了如下方法,他的含義是四舍五入,保留兩位小數(shù),但需要小數(shù)有值,

double a = new BigDecimal((float)10/20).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();  
System.out.println(a);

// 輸出0.5

double b = new BigDecimal((float)1/3).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();  
System.out.println(f);

// 輸出0.33

另外,float是單精度類(lèi)型,精度是8位有效數(shù)字,內(nèi)存分配4個(gè)字節(jié),占32位,取值范圍是10的-38次方到10的38次方,有效小數(shù)位6-7位。

對(duì)應(yīng)double是雙精度類(lèi)型,精度是17位有效數(shù)字,取值范圍是10的-308次方到10的308次方,double占用8個(gè)字節(jié)的存儲(chǔ)空間。

默認(rèn)小數(shù)都用double來(lái)表示,所以如果要用float的話,則應(yīng)該在其后加上f,例如這么聲明,

float z=1.3;

會(huì)報(bào)錯(cuò)誤

Type mismatch: cannot convert from double to float

需要改為,

float z=1.3f;

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Java怎樣保留兩位小數(shù)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

分享名稱:Java怎樣保留兩位小數(shù)
文章出自:http://bm7419.com/article30/geggpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、小程序開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司面包屑導(dǎo)航、App開(kāi)發(fā)電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名