JAVA把結(jié)果保留兩位小數(shù)的3種方法舉例
在Java中,保留兩位小數(shù)可以使用幾種不同的方法,下面將詳細(xì)解釋并給出每種方法的例子:
1.使用DecimalFormat類
DecimalFormat
是java.text
包中的一個(gè)類,專門用于格式化數(shù)字,包括保留小數(shù)點(diǎn)后指定的位數(shù)。下面是使用DecimalFormat
來保留兩位小數(shù)的示例:
import java.text.DecimalFormat; public class Main { public static void main(String[] args) { // 原始數(shù)值 double value = 123.456789; // 創(chuàng)建DecimalFormat對象,并設(shè)置格式為保留兩位小數(shù) DecimalFormat df = new DecimalFormat("#.##"); // 格式化數(shù)字 String formattedValue = df.format(value); // 輸出結(jié)果 System.out.println(formattedValue); // 輸出:123.46 } }
在此例中,#.##
是一個(gè)模式字符串,其中#
代表任意數(shù)字,.
代表小數(shù)點(diǎn),因此#.##
意味著至少顯示一位數(shù)字,最多顯示兩位小數(shù),多余的數(shù)字將被四舍五入。
2.使用String.format()方法
Java的String
類有一個(gè)靜態(tài)方法format()
,可以按照指定的格式模板格式化數(shù)據(jù)。以下是如何使用它來保留兩位小數(shù):
public class Main { public static void main(String[] args) { // 原始數(shù)值 double value = 123.456789; // 使用String.format()格式化數(shù)字,"%f"表示浮點(diǎn)數(shù)格式,".2f"指明保留兩位小數(shù) String formattedValue = String.format("%.2f", value); // 輸出結(jié)果 System.out.println(formattedValue); // 輸出:123.46 } }
這里的%.2f
是一個(gè)格式說明符,其中.
前面的%
標(biāo)志著這是一個(gè)轉(zhuǎn)換說明符,f
表示浮點(diǎn)數(shù),而.2
指定了小數(shù)點(diǎn)后的位數(shù)。
3.使用BigDecimal類
java.math.BigDecimal
是Java中用于高精度算術(shù)運(yùn)算的類,它可以精確控制浮點(diǎn)數(shù)的精度。下面是如何使用setScale()
方法保留兩位小數(shù):
import java.math.BigDecimal; public class Main { public static void main(String[] args) { // 原始數(shù)值 double value = 123.456789; // 將double類型轉(zhuǎn)換為BigDecimal,以避免浮點(diǎn)數(shù)精度問題 BigDecimal bd = new BigDecimal(Double.toString(value)); // 設(shè)置小數(shù)點(diǎn)后保留兩位,并進(jìn)行四舍五入 BigDecimal roundedValue = bd.setScale(2, BigDecimal.ROUND_HALF_UP); // 將結(jié)果轉(zhuǎn)換為字符串輸出 String formattedValue = roundedValue.toPlainString(); // 輸出結(jié)果 System.out.println(formattedValue); // 輸出:123.46 } }
在上述示例中,setScale(2, BigDecimal.ROUND_HALF_UP)
方法設(shè)置了小數(shù)點(diǎn)后保留兩位,并指定了四舍五入的方式為ROUND_HALF_UP(這是最常見的舍入模式,即大于等于0.5向上舍入,小于0.5向下舍入)。toPlainString()
方法將結(jié)果轉(zhuǎn)換成沒有指數(shù)記法的普通字符串形式。使用BigDecimal
處理浮點(diǎn)數(shù)時(shí),能保證結(jié)果的精確性,不受原始float或double類型精度限制的影響。
總結(jié)
到此這篇關(guān)于JAVA把結(jié)果保留兩位小數(shù)的3種方法的文章就介紹到這了,更多相關(guān)JAVA結(jié)果保留兩位小數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
教你利用SpringBoot寫一個(gè)屬于自己的Starter
如果我們將可獨(dú)立于業(yè)務(wù)代碼之外的功配置模塊封裝成一個(gè)個(gè)starter,復(fù)用的時(shí)候只需要將其在pom中引用依賴即可,SpringBoot為我們完成自動(dòng)裝配,簡直不要太爽,這篇文章主要給大家介紹了關(guān)于如何利用SpringBoot寫一個(gè)屬于自己的Starter,需要的朋友可以參考下2022-03-03RocketMq 消息重試機(jī)制及死信隊(duì)列詳解
這篇文章主要為大家介紹了RocketMq 消息重試機(jī)制及死信隊(duì)列詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Java Socket編程實(shí)例(三)- TCP服務(wù)端線程池
這篇文章主要講解Java Socket編程中TCP服務(wù)端線程池的實(shí)例,希望能給大家做一個(gè)參考。2016-06-06這一次搞懂Spring代理創(chuàng)建及AOP鏈?zhǔn)秸{(diào)用過程操作
這篇文章主要介紹了這一次搞懂Spring代理創(chuàng)建及AOP鏈?zhǔn)秸{(diào)用過程操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08spring boot使用logback實(shí)現(xiàn)多環(huán)境日志配置詳解
這篇文章主要介紹了spring boot使用logback實(shí)現(xiàn)多環(huán)境日志配置詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08java 中String和StringBuffer與StringBuilder的區(qū)別及使用方法
這篇文章主要介紹了java 中String和StringBuffer與StringBuilder的區(qū)別及使用方法的相關(guān)資料,在開發(fā)過程中經(jīng)常會(huì)用到String 這個(gè)類進(jìn)行操作,需要的朋友可以參考下2017-08-08