大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java顯示雙精度至小數點后兩位的方法

Java顯示雙精度至小數點后兩位的方法

更新時間:2022-10-12 10:38:49 來源:動力節點 瀏覽3118次

在 Java 中,當我們在變量前使用雙精度數據類型時,它表示小數點后 15 位。但有時我們只需要小數點后兩位小數,比如代表盧比和其他單位。因此,在本節中,我們將討論顯示雙精度至小數點后兩位的方法以及適當的示例和 Java 程序。

Java 提供了以下三種方法來顯示 2 位小數的雙精度:

使用 DecimalFormat ("0.00")

使用 String.format() 方法 ("%.2f")

使用 BigDecimal

讓我們一一討論上述方法。

使用十進制格式

Java DecimalFormat是 NumberFormat 類的具體子類,用于格式化十進制數。該類提供了setRoundingMode()方法來顯示最多兩位小數的雙精度數。

句法:

公共無效 setRoundingMode(RoundingMode 舍入模式)   

它接受舍入模式作為參數并覆蓋NumberFormat類的 setRoundingMode() 方法。如果我們沒有指定任何 roundingMode ,它會拋出NullPointerException 。

我們使用了 DecimalFormat 類的另一種方法是format()方法。它格式化一個字符串以產生一個字符串。

句法:

public  StringBuffer 格式(雙 數,StringBuffer 結果,FieldPosition fieldPosition)  

該方法接受三個參數編號、結果和位置。但最后兩個參數是可選的。它返回格式化的數字字符串。如果RoundingMode設置為UNNECESSARY,該方法將引發ArithmeticException 。

TwoDecimalPlace1.java

導入 java.math.RoundingMode;  
導入 java.text.DecimalFormat;  
公共類 TwoDecimalPlace1    
{  
// DecimalFormat 類的構造函數  
私有靜態最終 DecimalFormat decfor =  new  DecimalFormat( "0.00" );    
公共靜態無效 主(字符串參數 [])     
{  
//定義一個double類型的數字   
雙 數 =  123.9876543567 ;  
System.out.println( "雙數:"  + num);  
System.out.println( "雙數:"  + decfor.format(num));    //123.99  
//十進制格式,默認為RoundingMode.HALF_EVEN  
decfor.setRoundingMode(RoundingMode.DOWN);  
System.out.println( "\n四舍五入前:"  + decfor.format(num));  //123.98  
decfor.setRoundingMode(RoundingMode.UP);  
System.out.println( "四舍五入后:"  + decfor.format(num));    //123.99  
}  
}  

輸出:

雙號:123.9876543567
雙數:123.99
舍入前:123.98
四舍五入后:123.99

使用 String.format() 方法

Java 還提供了 format() 方法來格式化數字。它屬于 String 類。通過使用該方法,可以相應地格式化任何數字和字符串。

為了將數字更改為最多兩位小數,我們使用%.2f來格式化數字。請注意,我們不能在 String.format() 方法中四舍五入,總是四舍五入。

句法:

公共靜態 字符串格式(字符串格式,對象... args)   

該方法接受以下兩個參數:

格式:這是我們想要的格式化字符串。

args:這些是格式字符串中格式說明符引用的參數。

它返回格式化的字符串。如果格式字符串包含非法語法,則拋出IllegalFormatException 。如果我們將格式指定為 null,它也會拋出NullPointerException 。

TwoDecimalPlace2.java

公共類 TwoDecimalPlace2   
{  
公共靜態無效 主(字符串參數 [])     
{  
//定義一個double類型的數字   
雙 數=  10.98765432167 ;  
System.out.println( "雙數:"  + num);  
//使用以下兩個語句中的任何一個來保留兩位小數都給出相同的結果  
System.out.println( "雙數:"  + String.format( "%.2f" , num));  
System.out.format( "雙數:%.2f" , num);  
}  
}  

輸出:

雙號:10.98765432167
雙數:10.99
雙數:10.99

使用 BigDecimal

我們還可以使用 Java BigDecimal 類來顯示最多兩位小數的數字。它屬于java.math.BigDecimal包。它擴展了 Number 類并實現了Comparable接口。

該類提供了 setScale() 方法。語法如下:

句法:

setScale( int  newScale, RoundingMode roundingMode)  

該方法接受兩個參數:

newScale:要返回的 BigDecimal 值的小數位數。

roundingMode:我們要應用的舍入模式。

它返回 BigDecimal,其標度為指定值,其未標度值通過將此 BigDecimal 的未標度值乘以或除以適當的 10 次方來確定,以保持其整體值。

如果RoundingMode設置為UNNECESSARY,該方法將引發ArithmeticException。RoundingMode 是提供上述 RoundingMode 的枚舉。

我們在這個程序中使用的另一種方法是BigDecimal.doubleValue()。它將 BigDecimal 轉換為雙精度數。讓我們看一個例子。

TwoDecimalPlace3.java

導入 java.math.BigDecimal;  
導入 java.math.RoundingMode;  
公共類 TwoDecimalPlace3    
{  
公共靜態無效 主(字符串參數 [])     
{  
//定義一個double類型的數字   
雙 數=  12.4565652239 ;  
System.out.println( "雙數:"  + num);  
BigDecimal bd =  new  BigDecimal(num).setScale( 2 , RoundingMode.HALF_UP);  
雙 newNum = bd.doubleValue();  
System.out.println( "最多保留兩位小數:"  + newNum);  
}  
}  

輸出:

雙號:12.4565652239
最多兩位小數:12.46

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 轻轻色在线视频中文字幕 | 中文字幕一区在线观看视频 | 九九re | 国产h版大片在线播放 | 四虎精品永久免费 | 亚洲精品国产一区二区在线 | 亚洲日日| 久草热草 | 国产区1| 色婷婷久久久swag精品 | 久久99精品这里精品3 | 成人精品第一区二区三区 | 日韩免费在线视频观看 | 99热精品在线 | 在线亚洲欧洲福利视频 | 色汉综合 | 精品一区二区三区亚洲 | 五月天婷亚洲天综合网精品偷 | 日本亚洲欧洲免费无码 | 午夜一级精品免费毛片 | 欧美成人午夜精品一区二区 | 玖玖精品视频在线 | 国内久久久久影院精品 | 深夜福利影院 | 香蕉大黄香蕉在线观看 | 99久久精品免费看国产高清 | 国产精品成人观看视频网站 | 亚洲成人网在线观看 | 四虎久久久 | 中文精品99久久国产 | 日本特级aⅴ一级毛片 | 国产精品久久久久久久网站 | 综合久久久久久久综合网 | 久久久国产精品四虎 | 亚洲视频999 | 亚洲日本久久一区二区va | 91福利社在线观看 | 天天天干干干 | 91精品国产麻豆国产自产在线 | jizzjiz熟丰满老妇日本 | 国产激情久久久久久影院 |