您好,登錄后才能下訂單哦!
今天小編給大家分享一下java如何保留兩位小數的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
BigDecimal
類是java.math
包中提供的一個API類,它可以用來對超過16位有效位的數據進行精確的運算。它提供了format()
方法可以用來進行對數值的格式化控制。具體格式化代碼如下:
public static String format1(double value){
BigDecimal bd = new BigDecimal(value);//創建一個bd對象,將要轉換的值value傳入構造函數
bd = bd.setScale(2, RoundingMode.HALF_UP);//調用setScale方法進行數據格式化,保留兩位小數,采用四舍五入規則
return bd.toString(); //返回bd對象的值(轉化為string形式)
}
DecimalFormat
類是NumberFormat
的一個具體子類,是用來格式化十進制數字的。使用該方法也可以簡單的格式化數據。具體格式化代碼如下:
public static String format2(double value) {
DecimalFormat df = new DecimalFormat("0.00");//創建一個df對象,傳入0.00表示構造一個保留小數點后兩位的df對象
df.setRoundingMode(RoundingMode.HALF_UP);//設置規則,這里采用的也是四舍五入規則
return df.format(value);//返回value(在返回之前使用df對象的格式化方法將數據格式化)
}
NumberFormat
是所有數字格式的抽象基類。它用來提供格式化和解析數字的接口。它可以幫助開發者格式化和解析任何語言環境的數字。使用該方法格式化數據的代碼如下:
public static String format3(double value) {
NumberFormat nf = NumberFormat.getNumberInstance();//獲取NumberFormat類的實例需要調用getInstance()方法
nf.setMaximumFractionDigits(2);//設置強制保留兩位,避免出現10.00的時候返回10(也就是不滿兩位要用零補足兩位)
nf.setMinimumFractionDigits(2);//設置強制保留兩位,如果有多出的就采用計數保留進行處理(也就是超過兩位的要進行進位換算)
nf.setRoundingMode(RoundingMode.HALF_UP);//設置計數保留規則,這里采用四舍五入法
nf.setGroupingUsed(false);//是否將數據使用逗號進行分組
return nf.format(value);//返回value(在返回之前使nf對象的格式化方法將數據格式化)
}
使用java.util.Formatter
也可以進行數據的格式化。具體代碼如下:
public static String format4(double value) {
return new Formatter().format("%.2f", value).toString();
//使用java.util.Formatter的format方法,可以將value數值格式化成指定格式的數據 //%是格式化字符(與C語言類似).2表示保留小數點后兩位,f表示傳入的這個數值是浮點型
//最后使用toString方法將數值轉換成字符串
}
String.format
作為文本處理工具,為我們提供了強大而且豐富的字符串格式化功能,它也可以進行浮點數的格式化。具體的代碼如下:
public static String format5(double value) {
return String.format("%.2f", value).toString();
//%是格式化字符(與C語言類似).2表示保留小數點后兩位,f表示傳入的這個數值是浮點型 //最后使用toString方法將數值轉換成字符串
}
以上可以堪稱是最簡單的方法了。但之所以稱它常見,是因為他可以直接在print
中使用。例如:
double num = 123.4567899;
System.out.print(String.format("%.2f", num)); //直接在print中使用
以上就是“java如何保留兩位小數”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。