• 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();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    运行结果:
    在这里插入图片描述
    在这里插入图片描述
    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();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    在这里插入图片描述
    ROUND_HALF_UP四舍五不入问题,可以点击链接参考这篇博客的解决方案。

    Tips:

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

    • (1)ROUND_UP
      不管保留数字后的数字是多少(0除外),ROUND_UP都会进1。
      在这里插入图片描述
    • (2)ROUND_DOWN
      保留设置小数点位数的数字,之后的数全部直接去掉。
      在这里插入图片描述
    • (3)ROUNF_HALF_UP
      四舍五入(>=5),但会出现四舍五不入的情况。
      可以参考这篇博客的解决方案
      在这里插入图片描述
    • (4)ROUND_HALF_DOWN
      五舍六入(>5),但也会出现五入的情况。
      在这里插入图片描述
      在这里插入图片描述

    由于会出现类似四舍五不入等问题,idea中已不推荐使用。
    在这里插入图片描述

    在这里插入图片描述

    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();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Java锁的逻辑(结合对象头和ObjectMonitor)
    谈谈如何写作(二)
    微调大模型工具-LoRA
    Hive数据定义语言-DDL-入门基础(含四个实践案例)
    【原创】不同RTOS中POSIX接口的实现差异
    数字标牌/广告机无线组网方案
    最新清理删除Mac电脑内存空间方法教程
    【Python 千题 —— 基础篇】输出可以被5整除的数
    mysql表字段超过多少影响性能 mysql表多少效率会下降
    mybatis选定的字段更新写法
  • 原文地址:https://blog.csdn.net/weixin_48935611/article/details/132940370