JAVA把結(jié)果保留兩位小數(shù)的3種方法舉例
在Java中,保留兩位小數(shù)可以使用幾種不同的方法,下面將詳細(xì)解釋并給出每種方法的例子:
1.使用DecimalFormat類
DecimalFormat是java.text包中的一個類,專門用于格式化數(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
}
}在此例中,#.##是一個模式字符串,其中#代表任意數(shù)字,.代表小數(shù)點(diǎn),因此#.##意味著至少顯示一位數(shù)字,最多顯示兩位小數(shù),多余的數(shù)字將被四舍五入。
2.使用String.format()方法
Java的String類有一個靜態(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是一個格式說明符,其中.前面的%標(biāo)志著這是一個轉(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ù)時,能保證結(jié)果的精確性,不受原始float或double類型精度限制的影響。
總結(jié)
到此這篇關(guān)于JAVA把結(jié)果保留兩位小數(shù)的3種方法的文章就介紹到這了,更多相關(guān)JAVA結(jié)果保留兩位小數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot基于maven打包分離lib及resource
這篇文章主要介紹了Springboot基于maven打包分離lib及resource,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10
spring AMQP代碼生成rabbitmq的exchange and queue教程
使用Spring AMQP代碼直接創(chuàng)建RabbitMQ exchange和queue,并確保綁定關(guān)系自動成立,簡化消息隊列配置,此經(jīng)驗分享供參考,歡迎支持腳本之家2025-08-08
springboot項目配置多數(shù)據(jù)庫連接的示例詳解
這篇文章主要介紹了springboot項目配置多數(shù)據(jù)庫連接的示例,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-12-12
IDEA2020.2.3中創(chuàng)建JavaWeb工程的完整步驟記錄
這篇文章主要給大家介紹了關(guān)于IDEA2020.2.3中創(chuàng)建JavaWeb工程的完整步驟,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
SpringBoot整合SQLite數(shù)據(jù)庫全過程
sqlite是一個很輕量級的數(shù)據(jù)庫,可以滿足日常sql的需求,下面這篇文章主要給大家介紹了關(guān)于SpringBoot整合SQLite數(shù)據(jù)庫的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03

