java保留小數點后幾位的 幾種方法:
(1)
Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數進行精確的運算。
雙精度浮點型變量double可以處理16位有效數。
方法一:
使用java.math下的 BigDecimal 類,實例化對象后,調用setScale(精度,方式)方法
第一個參數表示 保留多少位小數,第二個參數表示取整的方式
BigDecimal bd = new BigDecimal();
bd.setScale(x,BigDecimal.ROUND_HALF_UP).valueFloat()
實現代碼:
import java.math.BigDecimal; public class Test{ public static void main(String[]args){ /*方法一: * 1.調用 setScale(精度,方式) * 2.第一個參數表示 保留多少位小數,第二個參數表示取整的方式 * 3.BigDecimal.ROUNG_HALF_UP 表示向上取整,即四舍五入 * 最后返回float 類型參數 * */ float num1 = 3.1415926f; BigDecimal bd = new BigDecimal(num1); float num2 =bd.setScale(2,BigDecimal.ROUND_HALF_UP).floatValue(); System.out.println(num2); /* * 方法二: * */ } }
(2)
方法二:
DecimalFormat 是 NumberFormat 的一個具體子類,用於格式化十進制數字。
* 1.使用DecimalFormat()
* 2.初始化后,設置輸出的format格式
* 00.## 00表示輸出兩個數字,不足則補0
* ##表示四舍五入保留兩位小數,若最后一位為0,則舍棄
實現代碼:
import java.math.BigDecimal; import java.text.DecimalFormat; public class Test{ public static void main(String[]args){ /* * 方法二: * 1.使用DecimalFormat() * 2.初始化后,設置輸出的format格式 * 00.## 00表示輸出兩個數字,不足則補0 * ##表示四舍五入保留兩位小數,若最后一位為0,則舍棄 * */ float num1 = 3.1415916f; DecimalFormat df = new DecimalFormat("00.##");//保留兩位小數 System.out.println(df.format(num1)); } }
(3
方法三:
利用String類中的 format方法
String.format("%.2f",需要進行格式化的數字); %.2f表示保留 兩位小數 %.3f表示保留 三位小數
public class Test{ public static void main(String[]args){ /* * 方法三: * 利用String類中的 format方法 * String.format("%.2f",需要進行格式化的數字); * %.2f表示保留 兩位小數 %.3f表示保留 三位小數 * */ float num = 3.1415926f; String num1 = String.format("%.2f",num); System.out.println(num1); } }