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则向下舍

最新文章

  1. ISO日期格式标准,浏览器到服务器到mysql中的时区
  2. JavaScript编码规范指南
  3. iframe自定义高度
  4. iOS内存管理(二)之深拷贝和浅拷贝
  5. 初识VBS
  6. MyBatis的分页操作(MySQL)
  7. 《你不常用的c#之四》:Array的小抽屉ArraySegment
  8. Java内部类总结
  9. html5 绘制集合图形
  10. OpenNMS在安装”我找不到jrrd.dll“错误的解决方法
  11. [shiro学习笔记]第四节 使用源代码生成Shiro的CHM格式的API文档
  12. 手把手教你写vue插件并发布(一)
  13. 《程序设计入门——C语言》翁恺老师 第一周编程练习记录
  14. Generalized Power Method for Sparse Principal Component Analysis
  15. activemq 的那些事1
  16. shell of leetcode
  17. AangularJS的表单验证
  18. Python单元测试框架之pytest 2 -- 生成测试报告
  19. UML类图简单学习 各种对象、关系UML表示法
  20. u3d 加密资源并缓存加载

热门文章

  1. easyUI datagrid 时间格式化
  2. H264编码技术[3]
  3. android 7源码的下载【转】
  4. Hadoop安装—— WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platf
  5. CF 1042 A Benches —— 二分答案(水题)
  6. js工作备注
  7. python/shell脚本报异常^M: bad interpreter: No such file or directory
  8. [笔试面试题] 3-C++关键字篇
  9. 二分搜索 HDOJ 2289 Cup
  10. EditText(4)常用属性详解