BigDecimal使用方法

文章目录

  • 引入
  • BigDecima
  • BigDecima的使用
  • 舍入模式
    • up
    • down
    • CEILING
    • FLOOR
    • half_UP
    • half_UP
  • BigDecimal存储原理
  • 总结

引入

知识引入:如下图

在这里插入图片描述

0.266小数部分二进制需要55位存储,如果我们double接收那么将丢掉最后三位,所以我们在代码中进行小鼠的加减运算结果有时候并不是我们想要的

BigDecima

  • 用于小数的精确计算
  • 用来表示很大的小数
import java.math.BigDecimal;
import java.math.BigInteger;public class BigDecimal1 {public static void main(String[] args) {//通过传递字符串表示的小数来创建对象BigDecimal bigDecimal=new BigDecimal("0.01");BigDecimal bigDecimal1=new BigDecimal("0.09");System.out.println(bigDecimal1);//0.01//通过静态方法来获取对象BigDecimal bigDecimal2=BigDecimal.valueOf(10);BigDecimal bigDecimal3=BigDecimal.valueOf(10);System.out.println(bigDecimal2==bigDecimal3);//true}
}

细节:
如果表示数字不大不超过double范围 用静态方法
如果较大 超范围 就用构造方法
如果我们传递是0到10之间整数 那么方法会返回已经创建好的对象 不会重新创建

BigDecima的使用

在这里插入图片描述

import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;public class BigDecimal1 {public static void main(String[] args) {//通过传递字符串表示的小数来创建对象BigDecimal bigDecimal=new BigDecimal("0.01");BigDecimal bigDecimal1=new BigDecimal("0.09");System.out.println(bigDecimal1);//0.01//通过静态方法来获取对象BigDecimal bigDecimal2=BigDecimal.valueOf(10);BigDecimal bigDecimal3=BigDecimal.valueOf(10);System.out.println(bigDecimal2==bigDecimal3);//true//加法BigDecimal bigDecimal4=BigDecimal.valueOf(10.0);BigDecimal bigDecimal5=BigDecimal.valueOf(2.0);BigDecimal add = bigDecimal4.add(bigDecimal5);System.out.println(add);//打印结果12//除法BigDecimal divide = bigDecimal4.divide(bigDecimal5);System.out.println(divide);//打印结果为5.0//除法2  除不尽的数用这个BigDecimal bigDecimal7=BigDecimal.valueOf(10.0);BigDecimal bigDecimal8=BigDecimal.valueOf(3.0);//下面第一个传入的表示除数  第二个是要保留小数点后几位  第三位是采用什么运输模式 我这边选择的是四舍五入BigDecimal divide1 = bigDecimal7.divide(bigDecimal8, 2, RoundingMode.HALF_UP);System.out.println(divide1);//3.33 打印结果}
}

舍入模式

up

在这里插入图片描述
远离0的

down

在这里插入图片描述
向0

CEILING

在这里插入图片描述

向正无穷大

FLOOR

在这里插入图片描述

向负无穷大

half_UP

在这里插入图片描述

四舍五入,如果距离相等则向上舍入.如果被舍去部分=>0.5则舍入行为同UP 相反DOWN

half_UP

在这里插入图片描述

BigDecimal存储原理

在这里插入图片描述

BigDecimal在底层也是一个数组 他拿到一个小数他会把小数每一位分开存在一个数组内然后用ascii表对应数字表示

总结

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何实现chatGPT批量问答,不用token

3分钟,教你做个GPT批量问答还不用token | 有源码 解压压缩包;在Pycharm打开这个文件夹 执行 pip install undetected_chromedriver 和 pip install selenium 执行第1到63行代码,后台会自动打开浏览器,需要手动登录账号和点掉系…

Visual Studio自定义模板参数、备注

模板路径: VS2022 x64:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\ItemTemplatesVS2022 x86:C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\ItemTemplates 一、声明和启用模板…

想升级macOS Big Sur,但是MacBook内存空间不够该怎么办?

随着使用时间的增长,我们会发现Mac电脑的存储空间越来越少,这时候我们就需要对Mac电脑进行清理,以释放更多的存储空间。那么,Mac空间不足怎么解决呢? 1.清理垃圾文件 Mac空间不足怎么解决?首先要做的就是清…

Tomcat服务器下载、安装、配置环境变量教程(超详细)

请先配置安装好Java的环境,若没有安装,请参照如下博客上的步骤进行安装! 安装Java环境教程Windows配置Java环境变量(下载、安装、配置环境)_第三女神程忆难的博客-CSDN博客 Tomcat部署Web项目(一)内嵌 Tomcat部署网站…

力扣 -- 516. 最长回文子序列

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:int longestPalindromeSubseq(string s) {int ns.size();vector<vector<int>> dp(n,vector<int>(n));//记得从下往上填表for(int in-1;i>0;i--){//记得i是小于等于j的for(int ji;j&l…

vscode 乱码解决

windows 10 系统 vs code 编译运行和调试 C/C_vscode windows编译_雪的期许的博客-CSDN博客 VS Code默认文件编码时UTF-8&#xff0c;这对大多数情况是没有问题的&#xff0c;却偏偏对C/C有问题。如果以UTF-8编码保存C/C代码&#xff0c;那么只能输出英文&#xff0c;另外使用…

uniapp 实现地图头像上的水波纹效果

最近实现了uniapp 地图头像水波纹的效果&#xff0c;话不多说&#xff0c;先来看看视频效果吧&#xff1a;链接 在这里具体的代码就不放出来了&#xff0c;还是利用了uniapp的 uni.createAnimation 方法&#xff0c;因为cover-view 不支持一些css 的动画效果&#xff0c;所以这…

SQL进阶 - SQL的编程规范

性能优化是一个很有趣的探索方向&#xff0c;将耗时耗资源的查询优化下来也是一件很有成就感的事情&#xff0c;但既然编程是一种沟通手段&#xff0c;那每一个数据开发者就都有义务保证写出的代码逻辑清晰&#xff0c;具有很好的可读性。 目录 引子 小试牛刀 答案 引言 …

APP 备案公钥、签名 MD5获取方法。

一、IOS 系统获取 Bundle ID、平台公钥、签名 MD5 值的指引 获取 Bundle ID&#xff1a;使用 APP 对应的 IOS 开发者账号登录 Developer 控制台&#xff0c;找到下图标识符&#xff08;英文&#xff09;&#xff0c;单击进入 Certificates,Identifiers&Profiles 页面。 在…

如何轻松使用 ChatGPT 进行论文大纲和创作

ChatGPT能够编写复杂的代码、博客文章等&#xff0c;它可以帮助我们做很多事情。今天本篇文章分享的主要内容如何利用 ChatGPT 来撰写论文文章。下面会介绍如何轻松使用 ChatGPT 进行论文大纲和创作&#xff01; 1、使用 ChatGPT 确定主题 文章非常重要的一个部分就是主题。如…

【AI工程化】 如何让AI在企业多快好省的落地,提高生产效率?

文章目录 &#x1f33a;前言&#x1f33a;内容简介&#x1f33a;读者对象&#x1f33a;专家推荐&#x1f386;彩蛋 &#x1f33a;前言 作为计算机科学的一个重要领域&#xff0c;机器学习也是目前人工智能领域非常活跃的分支之一。机器学习通过分析海量数据、总结规律&#xf…

IDEA的使用(一) (IntelliJ IDEA 2022.1.3版本)

目录 1. IDEA项目结构 2. 模块的导入操作 2.1 正规操作 2.2 取巧操作 2.3 出现乱码 2.4 模块改名 3. 代码模板的使用 后缀补全&#xff08;Postfix Completion&#xff09;、实时模板&#xff08;Live Templates&#xff09;菜单里面什么介绍都有&#xff0c;可以自学&a…

vscode更改为中文版本

方式一 在扩展里安装chinese插件 方式二 1.Ctrl&#xff0b; Shift &#xff0b;P&#xff08;commandshiftP&#xff09; 2.输入Configure display Language 3.选择zh-cn 这时候vscode会提示需要重启&#xff0c;点击restart重启vscode&#xff0c;重启后vscode就会显示中…

MacBook 录制电脑内部声音

MacBook 录制电脑内部声音 老妈喜欢跳广场舞&#xff0c;现在广场舞音频下载都收费了&#xff01;没办法&#xff0c;只能自己录歌了&#xff0c;外录有杂音大家也都知道&#xff0c;所以就只能采用内录的方式然后再用 Audition 调整一下音量大小。 一、&#xff08;前置条件&a…

git之分支代码合并

master合并到分支 1. 切换到master主分支上 git checkout master 2. 将master更新的代码拉取到本地 git pull 3. 再切换到自己的分支dev上 git checkout dev 4. 合并master到自己的分支dev上 git merge master此处如果有冲突会给出提示哪个文件有冲突&#xff0c;修改冲…

【广州华锐互动】VR线上播控管理系统让虚拟现实教学效果更加显著

随着科技的不断发展&#xff0c;虚拟现实(VR)技术已经逐渐走进我们的生活&#xff0c;尤其在教育领域&#xff0c;VR技术的应用为学生提供了全新的学习体验。 广州华锐互动作为一家成立16年的老牌VR公司&#xff0c;开发了不少VR教学课件&#xff0c;包括物理、化学、农林、土木…

Postman接口测试学习之常用断言

什么是断言&#xff1f; 断言——就是结果中的特定属性或值与预期做对比&#xff0c;如果一致&#xff0c;则用例通过&#xff0c;如果不一致&#xff0c;断言失败&#xff0c;用例失败。断言&#xff0c;是一个完整测试用例所不可或缺的一部分&#xff0c;没有断言的测试用例…

MySql8.0 + Qt 对数据库操作 - 初窥篇1

一、开发背景 32 位程序连接 64 位的数据库实例 二、开发环境 QtCreator4.8.2 Qt5.12.2 MySql8.0.33 三、实现步骤 1、测试驱动代码 测试结果 int main(int argc, char *argv[]) {QSqlDatabase db QSqlDatabase::addDatabase("QMYSQL");db.setHostName("…

温故知新:dfs模板-843. n-皇后问题

n−n−皇后问题是指将 nn 个皇后放在 nnnn 的国际象棋棋盘上&#xff0c;使得皇后不能相互攻击到&#xff0c;即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 nn&#xff0c;请你输出所有的满足条件的棋子摆法。 输入格式 共一行&#xff0c;包含整数 n…

【全网最详细的OSPF原理总结,看这篇就够了!】

OSPF是一种基于链路状态的路由协议&#xff0c;也是专为 IP 开发的路由协议&#xff0c;直接运行在 IP 层上面。它从设计上保证了无路由环路。除此之外&#xff0c;IS-IS也是很常见的链路状态协议。 为什么会出现OSPF&#xff1f; 作为目前主流的IGP协议&#xff0c;OSPF主要…