BigDecimal运算
2024-08-26 07:24:39
BigDecimal由任意精度整数未缩放值和32位整数级别组成 。 如果为零或正数,则刻度是小数点右侧的位数。 如果是负数,则数字的非标定值乘以10,以达到等级的否定的幂。 因此,BigDecimal所代表的BigDecimal值为(unscaledValue × 10-scale) 。
创建BigDecimal对象:
BigDecimal b = new BigDecimal("2.12");
BigDecimal b1 = newBigDecimal(Double.toString(1.234));
BigDecimal b2 = BigDecimal.valueOf(1.234); //可能出现精度问题
public BigDecimal add(BigDecimal value);//加法
public BigDecimal subtract(BigDecimal value);//减法
public BigDecimal multiply(BigDecimal value);//乘法
public BigDecimal divide(BigDecimal value);//除法
BigDecimal的运算都没有对原值进行操作,而是返回一个新的BigDecimal对象
BigDecimal的比较用的是BigDecimal的compareTo方法,将此 BigDecimal 与指定的 BigDecimal 比较。
根据此方法,值相等但具有不同标度的两个BigDecimal对象(如,2.0 和 2.00)被认为是相等的。
当此 BigDecimal 在数字上小于、等于或大于被比较对象时,返回 -1、0 或 1。
BigDecimal.setScale()方法用于格式化小数点
setScale(1)表示保留一位小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
最新文章
- ISO日期格式标准,浏览器到服务器到mysql中的时区
- JavaScript编码规范指南
- iframe自定义高度
- iOS内存管理(二)之深拷贝和浅拷贝
- 初识VBS
- MyBatis的分页操作(MySQL)
- 《你不常用的c#之四》:Array的小抽屉ArraySegment
- Java内部类总结
- html5 绘制集合图形
- OpenNMS在安装”我找不到jrrd.dll“错误的解决方法
- [shiro学习笔记]第四节 使用源代码生成Shiro的CHM格式的API文档
- 手把手教你写vue插件并发布(一)
- 《程序设计入门——C语言》翁恺老师 第一周编程练习记录
- Generalized Power Method for Sparse Principal Component Analysis
- activemq 的那些事1
- shell of leetcode
- AangularJS的表单验证
- Python单元测试框架之pytest 2 -- 生成测试报告
- UML类图简单学习 各种对象、关系UML表示法
- u3d 加密资源并缓存加载
热门文章
- easyUI datagrid 时间格式化
- H264编码技术[3]
- android 7源码的下载【转】
- Hadoop安装—— WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platf
- CF 1042 A Benches —— 二分答案(水题)
- js工作备注
- python/shell脚本报异常^M: bad interpreter: No such file or directory
- [笔试面试题] 3-C++关键字篇
- 二分搜索 HDOJ 2289 Cup
- EditText(4)常用属性详解