[Java基础] 如何保留两位小数

版权声明:欢迎转载,转载请说明出处. 大数据Github项目地址https://github.com/SeanYanxml/bigdata。 https://blog.csdn.net/u010416101/article/details/88635583

前言

前段时间在处理float类型的数据的时候,发现在float/double类型的数据输出时,总会遇到这样的问题.
例如: 1.000000000005.
问题: 1. 位数过多,看起来比较难受; 2. 最后的尾数有偏移.
解决办法: 将尾数四舍五入;将位数进行截断.


正文

如何保留2位小数字?

  • 使用BigDecimal的setScale()方法;
  • 使用System.out.println("%2f",a);
  • 使用NumberFormatsetMaximumFractionDigits(2)的方法
  • 使用DecimalFormatformat方法
   import java.math.BigDecimal;
   import java.text.DecimalFormat;
   import java.text.NumberFormat;
   public class Format {
        double f = 111231.5585;
        public void m1() {
            BigDecimal bg = new BigDecimal(f);
            double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
            System.out.println(f1);
        }
        /**
         * DecimalFormat转换最简便
         */
        public void m2() {
            DecimalFormat df = new DecimalFormat("#.00");
            System.out.println(df.format(f));
        }
        /**
         * String.format打印最简便
         */
        public void m3() {
            System.out.println(String.format("%.2f", f));
        }
        public void m4() {
            NumberFormat nf = NumberFormat.getNumberInstance();
            nf.setMaximumFractionDigits(2);
            System.out.println(nf.format(f));
        }
        public static void main(String[] args) {
            format f = new format();
            f.m1();
            f.m2();
            f.m3();
            f.m4();
        }
    }

Reference

[1]. java double类型保留两位小数4种方法
[2]. Java中Double保留后小数位的几种方法

猜你喜欢

转载自blog.csdn.net/u010416101/article/details/88635583