Java:double类型保留两位小数
Java开发,double类型的数据保留两位小数。
代码示例
- 01
下面是五种处理方法,使double类型的数据保留2位小数。
- 02
/*具体代码*/ import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; public class Test { double[] num = {3.4567, 3, 0.4567, 2343.333, 133, 3.1415}; public void func() { int i = 1; for(double d:num){ System.out.println("测试"+(i++)+" = "+d); String dstr = String.valueOf(d); // 第一种: java.text.DecimalFormat df = new java.text.DecimalFormat("#.##"); System.out.println("第一种="+df.format(d)); // 第二种:通过下面的结果可以看出,一二两种都可以,第一种如果小数部分是0的话就只显示整数,第二种始终显示两位小数 BigDecimal bd = new BigDecimal(dstr); bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP); System.out.println("第二种="+bd); // 第三种: long l = Math.round(d * 100); // 四舍五入 double ret = l / 100.0; // 注意:使用 100.0 而不是 100 System.out.println("第三种="+ret); // 第四种: d = ((int) (d * 100)) / 100; System.out.println("第四种="+d); //第五种 DecimalFormat df2 = new DecimalFormat("#.00"); //df2.setRoundingMode(RoundingMode.HALF_UP); System.out.println("第五种="+df2.format(d)); System.out.println("-------------------------风骚的java分割线---------------------------"); } } public static void main(String[] args) { Test t = new Test(); t.func(); } }
- 03
运行结果: 测试1 = 3.4567 第一种=3.46 第二种=3.46 第三种=3.46 第四种=3.0 第五种=3.00 -------------------------风骚的java分割线--------------------------- 测试2 = 3.0 第一种=3 第二种=3.00 第三种=3.0 第四种=3.0 第五种=3.00 -------------------------风骚的java分割线--------------------------- 测试3 = 0.4567 第一种=0.46 第二种=0.46 第三种=0.46 第四种=0.0 第五种=.00 -------------------------风骚的java分割线--------------------------- 测试4 = 2343.333 第一种=2343.33 第二种=2343.33 第三种=2343.33 第四种=2343.0 第五种=2343.00 -------------------------风骚的java分割线--------------------------- 测试5 = 133.0 第一种=133 第二种=133.00 第三种=133.0 第四种=133.0 第五种=133.00 -------------------------风骚的java分割线--------------------------- 测试6 = 3.1415 第一种=3.14 第二种=3.14 第三种=3.14 第四种=3.0 第五种=3.00 -------------------------风骚的java分割线---------------------------
分析结果:
- 01
通过执行结果可以看出,一二两种都可以,第一种如果小数部分是0的话就只显示整数,第二种始终显示两位小数。可以根据自己的需要进行选择。