BigDecimal的常用API

BigDecimal用于解决浮点型运算时结果出现失真的问题。

这里0.2+0.1等于0.3就出现了失真

import java.math.BigDecimal;
import java.math.RoundingMode;

public class Test {
    public static void main(String[] args) {
        //BigDeciaml的使用:解决小数运算失真的问题
        double a = 0.2;
        double b = 0.1;
//        double c = a+ b;
//        System.out.println(c);
        //提供的构造器可以把String转成BigDecimal
        BigDecimal aa = new BigDecimal(Double.toString(a));
        BigDecimal bb = new BigDecimal(Double.toString(b));
        //推荐用第二种简化写法:相当于上一种写法,此法也是返回一个上面的这么一个东西,人家已经封装好了
        BigDecimal a1 = BigDecimal.valueOf(a);
        BigDecimal b1 = BigDecimal.valueOf(b);

        BigDecimal c1 = a1.add(b1); //加法
        BigDecimal d1 = a1.subtract(b1);//减法
        BigDecimal e1 = a1.multiply(b1);//乘法
        BigDecimal f1 = a1.divide(b1);//除法 除法运算时可能出问题,报错:无法精确表达结果 ,这个时候就要给一个精度位
        BigDecimal f2 = a1.divide(b1,2, RoundingMode.HALF_UP); //精确几位,舍入模式
        System.out.println(c1); //BigDecimal也重写了toString,不会把地址给你而是输出值

    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【HarmonyOS 4.0 应用开发实战】ArkTS 快速入门之常用属性(3)

个人名片: 🐼作者简介:一名大三在校生,喜欢AI编程🎋 🐻‍❄️个人主页🥇:落798. 🐼个人WeChat:hmmwx53 🕊️系列专栏:🖼️…

【每日一题】 2024年2月汇编(上)

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 【2.1】LCP 24.数字游戏 LCP 24. 数字游戏https://leetcode.cn/problems/5TxKeK/ 这个题目可以变换一下就是将一个递增的需求经过…

Python-web自动化-Playwright的学习

Python-web自动化-Playwright的学习 1. 安装playwright2. 界面等待3. 自动化代码助手4. 定位元素1. css selector定位2. xpath定位3. get_by_XXX定位 5. 操作元素1. 单选框、复选框2. select下拉框3. 网页操作4. 框架页 frame5. 窗口切换6. 截屏 1. 安装playwright pip命令 pi…

全闭环直播推流桌面分享远控系统

直播推流涉及多协议,多端技术栈和知识点,,想要做好并不容易,经过几年时间的迭代,终于小有成就,聚集了媒体服务器,实时会议sfu,远控kvm等功能。可以做一个音视频应用的瑞士小军刀。主…

【MySQL】学习外键约束处理员工数据

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-g4glZPIY0IKhiTfe {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

每日五道java面试题之java基础篇(九)

目录: 第一题 你们项⽬如何排查JVM问题第二题 ⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程?第三题 怎么确定⼀个对象到底是不是垃圾?第四题 JVM有哪些垃圾回收算法?第五题 什么是STW? 第…

(14)Hive调优——合并小文件

目录 一、小文件产生的原因 二、小文件的危害 三、小文件的解决方案 3.1 小文件的预防 3.1.1 减少Map数量 3.1.2 减少Reduce的数量 3.2 已存在的小文件合并 3.2.1 方式一:insert overwrite (推荐) 3.2.2 方式二:concatenate 3.2.3 方式三&#xff…

VS Code中的JDK设置

在VS Code使用中,如果机器只安装了一个版本的JDK版本,一般不需要特别关注JDK 的配置,但是在以下状况下,需要对JDK进行特别的配置: 机器有多个JDK版本,不同的项目使用不同的JDK版本项目使用的JDK版本较低&a…

【C/C++】2024春晚刘谦春晚魔术步骤模拟+暴力破解

在这个特别的除夕夜,我们不仅享受了与家人的温馨团聚,还被电视机前的春节联欢晚会深深吸引。特别是,魔术师刘谦的精彩表演,为我们带来了一场视觉和心灵的盛宴。在我的博客“【C/C】2024春晚刘谦春晚魔术步骤模拟暴力破解”中&…

洛谷C++简单题小练习day12—寻找最小值小程序

day12--寻找最小值--2.16 习题概述 题目描述 给出 n 和 n 个整数 ai​,求这 n 个整数中最小值是什么。 输入格式 第一行输入一个正整数 n,表示数字个数。 第二行输入 n 个非负整数,表示 1,2…a1​,a2​…an​,以空格隔开。 …

leetcode:343.整数拆分

解题思路: 拆分的越多越好(暂且认为),尽可能拆成m个近似相等的数,会使得乘积最大 dp含义:将i进行拆分得到最大的积为dp[i] 递推公式:j x dp[i-j](固定j,只通过凑dp[i-j]进而实现所…

报警产生器

1.  实验任务 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止&…

SPI控制8_8点阵屏

协议与硬件概述 SPI SPI是串行外设接口(Serial Peripheral Interface)的缩写。是一种高速的(10Mbps)的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线。 引脚介绍 SCLK:…

2024年【安徽省安全员C证】考试题库及安徽省安全员C证免费试题

题库来源:安全生产模拟考试一点通公众号小程序 安徽省安全员C证考试题库根据新安徽省安全员C证考试大纲要求,安全生产模拟考试一点通将安徽省安全员C证模拟考试试题进行汇编,组成一套安徽省安全员C证全真模拟考试试题,学员可通过…

ChatGPT高效提问—prompt实践(教师助手)

ChatGPT高效提问—prompt实践(教师助手) 下面来看看ChatGPT在教育领域有什么用途。 首先设定ChatGPT的角色为高中教师助手。 输入prompt: ChatGPT输出: ​ 教师助手的角色已经设置完成。下面通过几种不同的情景演示如何使用。 1.1.1 制定…

专业130+总分420+厦门大学847信号与系统考研经验厦大信息系统与通信工程,真题,大纲,参考书。

今年很幸运被厦门大学录取,考研专业课847信号与系统130,数二130,总分420,回头看这将近一年的复习,还是有不少经验和大家分享,希望对大家复习有帮助。专业课: 厦门大学847信号与系统在全国各高校…

comfyui换脸学习笔记

目录 Portrait Maker ComfyUI_Lam 人脸融合方案: 圣诞写真工作流 IPadapter faceID/faceID plus/faceID plusV2/Reactor换脸效果对比来 Portrait Maker 核心用的是 EasyPhoto ComfyUI_Lam 人脸融合方案: demo效果还可以,真实效果不是很稳…

Linux操作系统基础(十四):集群服务器搭建

文章目录 集群服务器搭建 一、新增Linux服务器 1、克隆虚拟机 2、修改虚拟机的硬件配置 3、修改虚拟机的网络配置 二、关闭防火墙 1、关闭firewalld 2、关闭SElinux 三、修改主机名 四、修改hosts映射 五、SSH免密登录 六、时钟同步 七、远程文件拷贝 1、从本机拷…

网红铁头因涉黄经历遭全网封杀

关注卢松松,会经常给你分享一些我的经验和观点。 铁头根本没意识到自己是公众人物了。 知名网红“铁头惩恶扬善”帐号被全网封禁,原因是因为遭到别人举报,1月12日凌晨“铁头”在直播的时候呢,自爆其涉黄经历。 铁头居然自己在直…

二维数组及函数的非函数实现

2024年2月14日 1.请编程实现二维数组的杨慧三角 #include<stdio.h> #include<stdlib.h> #include<string.h> void Yanghui(int n,int (*p)[n]) {for(int i0;i<n;i){for(int j0;j<i;j){if(j0||ij){*(*(pi)j)1;}else{*(*(pi)j)*(*(pi-1)j-1)*(*(pi-1)j)…