Java中double类型保留小数点后两位的方法

1.String类的format方法

package com.yushifu.problem;
//java中double保留两位小数的方法
import java.util.Scanner;
public class Demo01 {
    public static void main(String[] args) {
        //Practice:键盘输入数据,以保留小数点后两位的格式输出键盘输入的数据。
        double d = 0.0;//初始化变量d,用于接收输入的数据
        System.out.println("请输入数字,我们会以保留小数点后两位的格式输出给您!");
        //使用scanner接收键盘数据
        Scanner scanner = new Scanner(System.in);

        if(scanner.hasNextDouble()){
            d =scanner.nextDouble();
        }else {
            System.out.println("请输入浮点数!");
        }
        //1.方法一,使用String自带的format方法(会四舍五入)
        String format_d = String.format("%.2f",d);//将d的格式进行转换,转换后的数值在foramt_d里
        System.out.println("保留小数点后两位后,数值为:"+format_d);//注意这里输出要用设置好格式的format_d
        //勿忘我
        scanner.close();
    }
}

运行结果:
Java中double类型保留小数点后两位的方法_第1张图片
Java中double类型保留小数点后两位的方法_第2张图片
Tips:
在这里插入图片描述

2.使用BigDecimal的setScale方法

package com.yushifu.problem;
import java.math.BigDecimal;
import java.util.Scanner;

/**
 * @author yushifu
 * @Description BigDecimal类是Java中进行精确计算的必备工具,其通过setScale方法的四舍五入方式,可以满足商业运作中对数字处理的高精度需求。
 *在实际的开发过程中,我们可以根据自己的需求,选择适当的四舍五入方式,确保数值计算的准确性和稳定性。
 */
//java中double保留两位小数的方法
public class Demo02 {
    public static void main(String[] args) {
        //Practice:键盘输入数据,以保留小数点后两位的格式输出键盘输入的数据。
        double d = 3.1415926;//初始化变量d,用于接收输入的数据
        System.out.println("请输入数字,我们会以保留小数点后两位的格式输出给您!");
        //使用scanner接收键盘数据
        Scanner scanner = new Scanner(System.in);
        if(scanner.hasNextDouble()){
            d =scanner.nextDouble();
        }else {
            System.out.println("请您输入阿拉伯数字!");
        }
        //2.方法二,使用BigDecimal的setScale方法

        BigDecimal bigDecimal_d = new BigDecimal(d);
        System.out.println("保留小数点后两位后,数值为:"+bigDecimal_d.setScale(2,BigDecimal.ROUND_HALF_UP));
         //勿忘我
        scanner.close();
    }
}

Java中double类型保留小数点后两位的方法_第3张图片
ROUND_HALF_UP四舍五不入问题,可以点击链接参考这篇博客的解决方案。

Tips:

BIgDecimal的setScale四大常用方法总结:

  • (1)ROUND_UP
    不管保留数字后的数字是多少(0除外),ROUND_UP都会进1。
    Java中double类型保留小数点后两位的方法_第4张图片
  • (2)ROUND_DOWN
    保留设置小数点位数的数字,之后的数全部直接去掉。
    Java中double类型保留小数点后两位的方法_第5张图片
  • (3)ROUNF_HALF_UP
    四舍五入(>=5),但会出现四舍五不入的情况。
    可以参考这篇博客的解决方案
    Java中double类型保留小数点后两位的方法_第6张图片
  • (4)ROUND_HALF_DOWN
    五舍六入(>5),但也会出现五入的情况。
    Java中double类型保留小数点后两位的方法_第7张图片
    Java中double类型保留小数点后两位的方法_第8张图片

由于会出现类似四舍五不入等问题,idea中已不推荐使用。
Java中double类型保留小数点后两位的方法_第9张图片

Java中double类型保留小数点后两位的方法_第10张图片

3.使用Java中Math类中的Java round()方法

package com.yushifu.problem.decimal_point;
//java中double保留两位小数的方法
import java.util.Scanner;
public class Demo03 {
    public static void main(String[] args) {
        //Practice:键盘输入数据,以保留小数点后两位的格式输出键盘输入的数据。
        double d = 3.1415926;//初始化变量d,用于接收输入的数据
        System.out.println("请输入数字,我们会以保留小数点后两位的格式输出给您!");
        //使用scanner接收键盘数据
        Scanner scanner = new Scanner(System.in);
        if(scanner.hasNextDouble()){
            d =scanner.nextDouble();
        }else {
            System.out.println("请您输入阿拉伯数字!");
        }
       //3.方法三:使用Java中的Number&Math类中的Java round()方法
        d = (double) Math.round(d*100)/100;
        System.out.println("保留小数点后两位后,数值为:"+d);
         //勿忘我
        scanner.close();
    }
}

Java中double类型保留小数点后两位的方法_第11张图片
Java中double类型保留小数点后两位的方法_第12张图片

你可能感兴趣的:(javaSE,java,开发语言)