bigdecimal 等于0_好程序员Java培训分享BigDecimal的用法
好程序员Java培训分享BigDecimal的用法,如果对数值结果精度要求很高,那么就可以使用BigDecimal,BigDecimal可以精准的控制小数点后面的数字
Java培训
1. 实例 BigDecimal 对象
通常会使用 String 和 int 构造方法实例出 BigDecimal 对象,即
new BigDecimal(String val);
new BigDecimal(int val);
如参数为 double 类型,得先转换成 String 类型再入参
new BigDecimal(Double.toString(123.123));
2. BigDecimal 加减乘除
加减乘除都是用 BigDecimal 对象点(.)加减乘除方法入参 BigDecimal 对象,返回的也是 BigDecimal 对象
加:BigDecimal add = new BigDecimal("123.123").add(new BigDecimal("123.123")); ---> 246.246
减:BigDecimal subtract = new BigDecimal("123.123").subtract(new BigDecimal("123.123")); ---> 0.000
乘:BigDecimal multiply = new BigDecimal("123.123").multiply(new BigDecimal("123.123")); ---> 15159.273129
除:BigDecimal divide = new BigDecimal("123.123").divide(new BigDecimal("123.123")); ---> 1
注:其中除法一般不会这样直接除,在不能整除的情况下,这样运行程序是会报错的,所以一般除法会使用下面这个重载方法
new BigDecimal("10").divide("40",1,ROUND_HALF_UP); ---> 0.3
正常计算 10/40 结果为 0.25, 在这里是计算 十除以四十,保留一位小数,四舍五入模式。所以得到的结果为 0.3
最常用的模式:
① ROUND_HALF_UP:四舍五入
② ROUND_HALF_DOWN:向下取舍(去掉保留小数位后面的小数)
3. Scale 属性操作
① 获取小数的位数:new BigDecimal("123.123").scale() ---> 3
② setScale() 方法保留几位小数
- setScale(int NewScale):(注:入参的数字只能大于等于小数的位数,括号中只能入参大于等于 3 的数)
例: new BigDecimal("123.123").setScale(3) ---> 123.123
new BigDecimal("123.123").setScale(5) ---> 123.12300
- setScale(int newScale, RoundingMode roundingMode):
例:new BigDecimal("123.123").setScale(2,RoundingMode.HALF_UP) ---> 123.12
new BigDecimal("123.125").setScale(2,RoundingMode.HALF_UP) ---> 123.13
new BigDecimal("123.123").setScale(2,RoundingMode.HALF_DOWN) ---> 123.12
new BigDecimal("123.125").setScale(2,RoundingMode.HALF_DOWN) ---> 123.12
4. compareTo 比较大小
等于:new BigDecimal("123.123").compareTo(new BigDecimal("123.123"))==0 ---> true
new BigDecimal("123.123").compareTo(new BigDecimal("123.123")) ---> 0
如果 compareTo 的结果为 0 的话,就证明两个对象相等(当左边不等于右边时,第一个表达式则为 false)
小于:new BigDecimal("123.122").compareTo(new BigDecimal("123.123")) < 0 ---> true
new BigDecimal("123.122").compareTo(new BigDecimal("123.123")) ---> -1
如果 compareTo 的结果为 -1 的话,就证明左边小于右边(当左边大于等于右边时,第一个表达式则为 false)
大于:new BigDecimal("123.124").compareTo(new BigDecimal("123.123")) > 0 ---> true
new BigDecimal("123.124").compareTo(new BigDecimal("123.123")) ---> 1
如果 compareTo 的结果为 1 的话,就证明左边大于右边(当左边小于等于右边时,第一个表达式则为 false)
bigdecimal 等于0_好程序员Java培训分享BigDecimal的用法相关推荐
- 好程序员Java培训分享20个Java程序员基础题
好程序员Java培训分享20个Java程序员基础题1.谈谈final.finally.finalize的区别 final用于声明属性,方法和类,分别标识属性不可变,方法不可覆盖,类不可继承. fina ...
- java 保留html_好程序员Java培训分享Java包是什么?
好程序员Java培训分享Java包是什么?在Java中的包是一种封装一组类.子包和接口的机制,可用于组织一组相关的类和接口.从概念上讲,我们可以将包视为类似与计算机上的不同文件夹:可以将HTML页面保 ...
- 按照姓名升序排序的代码_好程序员Java培训分享Java集合的两种排序方法
好程序员Java培训分享Java集合的两种排序方法,Java集合的工具类Collections中提供了两种排序的方法,分别是: 1.Collections.sort(List list) 2.Coll ...
- 好程序员Java培训分享如何快速入门Java编程
好程序员Java培训分享如何快速入门Java编程,作为老牌编程语言,Java拥有广阔的市场应用,企业对Java人才的需求一直居高不下.有很多非专业.零基础的人想要学习Java却不知道怎么快速入门,接下 ...
- 好程序员Java培训分享Java初学者必读
好程序员Java培训分享Java初学者必读,近年来各种各样的编程语言不断崛起,但唯有Java是牢牢占据着老大的位置,目前几乎90%以上的大中型互联网应用系统在服务器端开发首选Java.因此,也是吸引了 ...
- java中forward和redirect_好程序员Java教程分享:Forward和Redirect的区别
Java教程分享:Forward和Redirect的区别,用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉 ...
- 好程序员Java教程分享JavaScript面试问题及答案(一)
好程序员Java教程分享JavaScript面试问题及答案(一) 1.使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个 ...
- visual foxpro 程序员指南_好程序员云计算培训分享云计算中SOA是什么?
好程序员云计算培训分享云计算中SOA是什么?云计算中SOA是什么?SOA 是面向服务的架构,即企业的 IT 系统是由服务组成的,也即企业的各个应用系统是由许多标准的服务件"组装"起 ...
- 好程序员云计算培训分享云计算大纲抢先看
好程序员云计算培训分享云计算大纲抢先看,当下,云计算产业高速发展,云计算可以实现信息资源的集中管理.按需供给."管家式"贴身服务和共享共创.在技术层面,互联网将为整个信息处理.资源 ...
最新文章
- 企业号、订阅号、服务号的一此区别
- 用 Flask 来写个轻博客 (34) — 使用 Flask-RESTful 来构建 RESTful API 之三
- Passwordless SSH Login
- python 读取文件_python读取docx文件,就是如此简单
- 小学音乐教学和计算机的融合,小学学科教学与计算机深度融合赛课心得体会(共4篇)...
- Office编程中得到extend对象
- echarts3D环形图(包含点击效果)
- SQL Server无法安装问题
- w25q64 linux,我用W25Q16的读写函数测试w25Q64怎么总是失败?需要改动什么吗?
- 反垄断重锤字节跳动,投资业务原地熄火 腾讯阿里争做“普通公司”
- OFN鼠标驱动(三) -- I2C驱动的移植(2)
- 【网络安全必看】如何提升自身WEB渗透能力?
- 为什么说信息是负熵?
- 解析范式(1NF-4NF)
- 谈谈区块链的常用架构
- css3上箭头怎么写,CSS3箭头
- CUDA基础(一):CPU体系架构概述
- JS基础-特效篇-随机点名册
- 【linux】-find、rm、kill等常用命令
- 解析几何:第二章 解析几何中的基本计算公式
热门文章
- linux解决windows应用程序,关于Linux下使用Windows应用程序的尝试总结
- linux阿帕奇日志文件,Linux下apache日志文件设置
- chm转pdf_简历是以PDF还是Word格式提交的?
- tarjan对有向图的缩点(求强连通分量)
- 揭秘下一代云数据库引擎MyBasefor PostgreSQL
- Spring启动慢?提速利器SpringFu来了
- troubleshoot之:用control+break解决线程死锁问题
- android 图片变颜色代码,Android -对图片Drawable进行变色
- 4条实用小建议,送给初入NLP领域的你
- 从零点五开始用Unity做半个2D战棋小游戏(二)