num2必须改用传入String类型

    //加法
BigDecimal result1 = num1.add(num2); //减法
BigDecimal result2 = num1.subtract(num2); //乘法
BigDecimal result3 = num1.multiply(num2); //除法
BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP); //绝对值
BigDecimal result4 = num3.abs();

小数部分操作

1. ROUND_DOWN

BigDecimal b = new BigDecimal("2.225667").setScale(2, BigDecimal.ROUND_DOWN);
System.out.println(b);//2.22 直接去掉多余的位数

2. ROUND_UP

BigDecimal c = new BigDecimal("2.224667").setScale(2, BigDecimal.ROUND_UP);
System.out.println(c);//2.23 跟上面相反,进位处理

3. ROUND_CEILING

天花板(向上),正数进位向上,负数舍位向上

BigDecimal f = new BigDecimal("2.224667").setScale(2, BigDecimal.ROUND_CEILING);
System.out.println(f);//2.23 如果是正数,相当于BigDecimal.ROUND_UP BigDecimal g = new BigDecimal("-2.225667").setScale(2, BigDecimal.ROUND_CEILING);
System.out.println(g);//-2.22 如果是负数,相当于BigDecimal.ROUND_DOWN

4. ROUND_FLOOR

地板(向下),正数舍位向下,负数进位向下

BigDecimal h = new BigDecimal("2.225667").setScale(2, BigDecimal.ROUND_FLOOR);
System.out.println(h);//2.22 如果是正数,相当于BigDecimal.ROUND_DOWN BigDecimal i = new BigDecimal("-2.224667").setScale(2, BigDecimal.ROUND_FLOOR);
System.out.println(i);//-2.23 如果是负数,相当于BigDecimal.ROUND_HALF_UP

5. ROUND_HALF_UP

BigDecimal d = new BigDecimal("2.225").setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("ROUND_HALF_UP"+d); //2.23 四舍五入(若舍弃部分>=.5,就进位)

6. ROUND_HALF_DOWN

BigDecimal e = new BigDecimal("2.225").setScale(2, BigDecimal.ROUND_HALF_DOWN);
System.out.println("ROUND_HALF_DOWN"+e);//2.22 四舍五入(若舍弃部分>.5,就进位)

pow() 立方计算

BigDecimal bigDecimal=BigDecimal.TEN;
System.out.println(bigDecimal.pow(3)); //1000

数值比较

BigDecimal a = new BigDecimal ("1");
BigDecimal b = new BigDecimal ("2"); //使用compareTo方法比较 a、b不能为null
if(a.compareTo(b) == -1){
System.out.println("a小于b");
} if(a.compareTo(b) == 0){
System.out.println("a等于b");
} if(a.compareTo(b) == 1){
System.out.println("a大于b");
} if(a.compareTo(b) > -1){
System.out.println("a大于等于b");
} if(a.compareTo(b) < 1){
System.out.println("a小于等于b");
}

最新文章

  1. android中如何在低版本(5.0之前)上使用tint(着色)属性
  2. Metrics-Java版的指标度量工具之一
  3. 在linux终端执行clear或top命令时出现:&#39;xterm&#39; unknown terminal type的错误
  4. 解决vsftpd日志时间问题
  5. 用DependanceProperty做Dynamic换Icon
  6. AES加密算法
  7. iOS安全——代码混淆&amp;反编译
  8. Android 巧妙实现图片和文字上下布局或者左右布局
  9. Java hashCode 和 equals()
  10. [Redux] Passing the Store Down with &lt;Provider&gt; from React Redux
  11. ThreadLoacl,InheritableThreadLocal,原理,以及配合线程池使用的一些坑
  12. 怎么在多场景下使用不同的 git 账号 commit
  13. [转]Rabbitmq的使用及Web监控工具使用
  14. idea集成maven
  15. 简明 Vim 练级攻略------转自陈皓coolshell
  16. 【转】字符编码笔记:ASCII、Unicode、UTF-8 和 Base64
  17. win10如何获得管理员权限_百度经验
  18. Myelipse中xml约束文件的导入(以spring为例)
  19. SVD(奇异值分解)Python实现
  20. 用Setup Factory7.0怎样打包delphi的BDE?

热门文章

  1. [省选联考 2021 A/B 卷] 宝石
  2. Apollo配置中心中的Namespace
  3. centOS6和7单用户修改密码
  4. Generic recipe for data analysis with general linear model
  5. python 多行对应元素求和
  6. Perl字符串处理函数用法集锦
  7. C语言之内核中的struct list_head 结构体
  8. Java日期格式转换不用发愁
  9. 备忘录:关于.net程序连接Oracle数据库
  10. 在 windows 系统上 安装与配置 PHP + Apache