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();
    }
}

运行结果:
在这里插入图片描述
在这里插入图片描述
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();
    }
}

在这里插入图片描述
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();
    }
}

在这里插入图片描述
在这里插入图片描述文章来源地址https://uudwc.com/A/V6gxo

原文地址:https://blog.csdn.net/weixin_48935611/article/details/132940370

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月25日 10:04
ajax method to retrieve images as a blob
下一篇 2023年09月25日 10:08