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); } }