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 bigdecimal divide 保留两位小数 其余舍弃_保留小数


java bigdecimal divide 保留两位小数 其余舍弃_System_02


Tips:

java bigdecimal divide 保留两位小数 其余舍弃_保留小数_03

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 bigdecimal divide 保留两位小数 其余舍弃_数据_04


Tips:

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

  • (1)ROUND_UP
    不管保留数字后的数字是多少(0除外),ROUND_UP都会进1。
  • (2)ROUND_DOWN
    保留设置小数点位数的数字,之后的数全部直接去掉。
  • (3)ROUNF_HALF_UP
    四舍五入(>=5),但会出现四舍五不入的情况。
  • (4)ROUND_HALF_DOWN
    五舍六入(>5),但也会出现五入的情况。

由于会出现类似四舍五不入等问题,idea中已不推荐使用。

java bigdecimal divide 保留两位小数 其余舍弃_开发语言_05

java bigdecimal divide 保留两位小数 其余舍弃_开发语言_06

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 bigdecimal divide 保留两位小数 其余舍弃_数据_07


java bigdecimal divide 保留两位小数 其余舍弃_System_08