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

news2024/11/20 14:15:07

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

    }
}

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

在这里插入图片描述
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中的Number&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);

    }
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1017452.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux CentOS7 history命令

linux查看历史命令可以使用history命令,该命令可以列出所有已键入的命令。 这个命令的作用可以让用户或其他有权限人员,进行审计,查看已录入的命令。 用户所键入的命令作为应保存的信息将记录在文件中,这个文件保存就是家目录中…

ApplicationContext版本的快速入门

ApplicationContext快速入门 ApplicationContext称为Spring容器,内部封装了BeanFactory,比BeanFactory功能更加丰富和强大,使用ApplicationContext进行开发时,xml配置文件的名称习惯写成applicationContext.xml。 BeanFactory和…

上海交通大学生存手册

强烈建议去看看《上海交通大学生存手册》,内容可能有点长,但讲得很好,说出了大学教育的本质。如果几年前我能看到它,也许我的大学生活可能会不一样。 只是,没有如果。 那么我把这本手册推荐给正在上大学或者是将要上…

网络协议学习地图分享

最近在回顾网络知识点的时候,发现华为数通有关报文格式及网络协议地图神仙网站,这里涵盖了各个协议层及每个协议层对应的协议内容,最人性的化的一点是点击每个单独的协议可以跳转到该协议详细报文格式页面,有对应的说明和解释&…

芯片工程师求职题目之CPU篇(4)

1. 在组相联cache中,用于替换cache line的算法有哪些? LRU(Least Recently Used)算法:该算法会跟踪每个cache line的age(年龄)情况,并在需要时替换掉近期最少使用的cache line。MRU(Most Recently Used)算法:这与LRU相…

TCP/IP、DTN网络通信协议族

TCP/IP 从 19 世纪 60 年代计算机网络发展开始,网络协议技术已经经历了半个多世纪的发展,地面互联网已经形成了以传输控制协议(TCP)/IP 协议体系为主的网络架构。TCP/IP体系发源于计算机网络,是一种以主 机为中心的网…

CountDownLatch 使用例子和代码流程

目录 CountDownLatch意思理解普通多线程运行Thread.join()实现CountDownLatch实现CountDownLatch流程new CountDownLatch(3)countDown 方法await方法 CountDownLatch意思理解 单词1: countdown 常见释义: 英[ˈkaʊntdaʊn] 美[ˈkaʊntdaʊn] n. 倒数读秒,倒计时(…

王江涛十天搞定考研词汇

学习目标: 考研词汇 学习内容: 2023-9-17 第一天考研词汇 学习时间: 2023-9-17 学习产出:A intellect智力;知识分子intellectual智力的;聪明的intellectualize使...理智化,对...做理性探索c…

ros2学习笔记:shell环境变量脚本setup.bash[-z][-n][-f]参数作用

-n作用 [ -n 字符串 ] or [ 字符串 ] 字符串的长度为非零(有内容)则为真。加-n与不加-n结果相同。 -z作用 [ -z 字符串 ] 字符串的长度为零则为真。 字符串为空即NULL时为真,与上面的-n相反。 -f作用 [ -f FILE ] 如果 FILE 存在且是一…

Unity shader内置standard代码解析

最近有相关需求制作,所以这里编写一个文档,方便后续的流程查看。 下载源码 由于unity内置的shader是无法查看源码的,你需要去官网下载对应版本内置源码查看 在引擎下载那里,会有一个Built in Shaders,下载 打开以后…

刷一下算法

记录下自己的思路与能理解的解法,可能并不是最优解法,不定期持续更新~ 1.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容…

AURIX TC3XX内存映射分析

TC3XX内存映射Features AURIX TC3xx系列设备的内存映射中包含的各个部分。这些内存部分在设备上有各自的用途和特性。以下是这些部分的一些概念解释: Program Flash Interface (PFI) 和 Program Flash Memory (PF) 是用来存储程序代码的闪存。即使在断电时&#xf…

【学习笔记】Java 一对一培训(3.1)Spring Boot介绍和基础

【学习笔记】Java 一对一培训(3.1)Spring Boot介绍和基础 关键词:Java、Spring Boot、Idea、数据库、一对一、培训、教学本文主要内容含Spring Boot相关的基础介绍、快速入门、Maven介绍、代码结构介绍、打包运行、配置介绍等计划1小时完成&…

TOTP算法实现

TOTP算法实现 1 什么是双因子认证(2FA)2 TOTP原理2.1 HOTP原理2.2 TOTP 3 实现参考文章 最近发现github天天给我发通知要启用双因子认证(2FA),受不了了只能想办法启用了。看到它支持采用基于TOTP算法的应用的认证方式&…

彻底搞懂线程池原理以及创建方式

1. 为什么要使用线程池 在实际使用中,线程是很占用系统资源的,如果对线程管理不善很容易导致系统问题。因此,在大多数并发框架中都会使用线程池来管理线程,使用线程池管理线程主要有如下好处: 降低资源消耗。通过复用…

Python机器学习实战-建立Gradient Boosting模型预测肾脏疾病(附源码和实现效果)

实现功能 建立Gradient Boosting模型预测肾脏疾病 实现代码 import pandas as pd import warnings warnings.filterwarnings("ignore") pd.set_option(display.max_columns, 26)#读取数据 df pd.read_csv("E:\数据杂坛\datasets\kidney_disease.csv") …

vMAP——论文解析

vMAP: Vectorised Object Mapping for Neural Field SLAM vMAP 是一个物体级稠密图 neural SLAM,每一个物体都用一个 mlp 来表征,而不需要 3D 先验。当 RGB-D 相机在没有任何先验信息的情况下时,vMAP 会即时检测物体 instance,并将…

在Ubuntu 18.04上支持C++17的std::filesystem的方法

在Ubuntu 18.04上通过命令sudo apt install gcc g安装的gcc/g版本为7.5,此版本并不直接支持filesystem,如下图所示: Ubuntu 18.04上的g 7.5支持experimental的filesystem,即std::experimental::filesystem,若想使Ubuntu 18.04支持…

购物系统设计与实现

目 录 1 绪 论 1 1.1 本课题研究的背景和意义 1 1.1.1 本课题研究的背景 1 1.1.2 本课题研究的意义 2 1.1.3 本课题的发展现状及前景 2 1.2 系统的实现任务 7 2 系统概述及实现技术介绍 8 2.1 网上商城简介 8 2.2 相关实现技术介绍 10 2.2.1 JSP语言及其特点 10 2.2.2 Dreamwe…

快速学会搭建微信小程序的基础架构

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 基础架构 构建界面 引入 uni-ui 组件库 组件自动引入 配置TS类型 状态管理 持久化 数据交互 请…