欢迎光临
一个废柴的博客

Java中保留小数(精确到小数点几位)

这里提供三种实现方式:

实现代码

import java.math.BigDecimal;
import java.text.DecimalFormat;

/**
 * @author IT废柴-https://www.itfeichai.com
 */
public class JavaSetScale {
    public static void main(String[] args) {
        double number = 0.125400;
        DecimalFormat df = new DecimalFormat("0.00");
        BigDecimal bd=new BigDecimal(number);
        System.out.println("1.使用java.text.DecimalFormat:" +df.format(number));
        System.out.println("2.使用String.format:" +String.format("%.2f",number));
        System.out.println("3.使用java.math.BigDecimal:" +bd.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());

    }
}

打印结果:

1.使用java.text.DecimalFormat:0.13
2.使用String.format:0.13
3.使用java.math.BigDecimal:0.13

扩展

示例代码1:


/** * @author IT废柴-https://www.itfeichai.com */ public class JavaSetScale { public static void main(String[] args) { double number = 0.00225400; DecimalFormat df = new DecimalFormat("0.00"); System.out.println("1.使用new DecimalFormat(\"0.00\"):" +df.format(number)); df = new DecimalFormat("#.##"); System.out.println("2.使用new DecimalFormat(\"#.##\"):" +df.format(number)); } } 结果: 1.使用new DecimalFormat("0.00"):0.00 2.使用new DecimalFormat("#.##"):0

1.写法DecimalFormat df = new DecimalFormat("0.00"),不管传入的任何值,均保留两位小数;
2.写法DecimalFormat df = new DecimalFormat("#.##"),则保留小数点后面不为0的两位小数,这种写法不能保证保留2为小数,但能保证最后一位数不为0;
3.java.text.DecimalFormatString.format都符合四舍五入,java.math.BigDecimal既支持四舍五入,也支持其他;
4.java.text.DecimalFormatString.format返回的是String类型;
5.String.format("%.2f",number)可以改为String.format("%.3f",number)等从而保留想要的小数位数。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址