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");
}

查看compareTo源码发现并无异常处理机制,所以a,b都不可为空,异常需提前处理。

基础运算:

//加减乘除:BigDecimal a= new BigDecimal("10");
BigDecimal b= new BigDecimal("5");  //加法  a.add(b);       //减法  a.subtract(b);  //乘法  a.multiply(b);  //除法  a.divide(b);  setScale(2) // 表示保留两位小数,默认用四舍五入方式
setScale(2,BigDecimal.ROUND_DOWN) // 向下取整
setScale(2,BigDecimal.ROUND_UP)   // 向上取整
setScale(2,BigDecimal.ROUND_HALF_UP) // 四舍五入
setScaler(2,BigDecimal.ROUND_HALF_DOWN) // 四舍五入,如果是5则向下舍

常见错误:

1、BigDecial的所有操作都会生成一个新的对象:
 
amount.add( thisAmount );  // 错误
amount = amount.add( thisAmount ); // 正确
 
 
2、不要用equals方法来比较BigDecimal对象,因为它的equals方法会比较scale,如果scale不一样,它会返回false;
 
例如:
BigDecimal a = new BigDecimal("1.00");
BigDecimal b = new BigDecimal("1.0");
print(a.equals(b)); // false
 
 
3、如果直接使用a.divide(b)除法,有时会报除不尽异常,如下:
 
BigDecimal a = new BigDecimal(10);
BigDecimal b = new BigDecimal(3);
a = a.divide(b); // 错误会报如下异常:java.lang.ArithmeticException: Non-terminating
decimal expansion; no exact representable decimal result.

BigDecimal中的大于等于、小于等于及加减乘除相关推荐

  1. c语言如何表示大于小于等于,Excel 公式中大于和小于等于计算应怎么写

    Excel 公式中大于和小于等于计算应怎么写以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Excel 公式中大于和小于 ...

  2. Mybaits中的大于小于等于

    Mybaits中的大于小于等于及其他特殊符号的表达 前言 在mybatis中写sql语句时,我们偶尔会需要比较数据,这时就需要用到< .>.<=.>=等的这类符号.这类符号在m ...

  3. xml文件中的大于等于等一些特殊符号

    xml 中表示: <= 小于等于. >= 大于等于 需加这样的标记: <![CDATA[ ]]> xml中有&的符号,需要<![CDATA[&]]> ...

  4. BigDecimal中divide方法与setScale方法详解

    BigDecimal中divide方法详解 1.首先说一下用法,BigDecimal中的divide主要就是用来做除法的运算.其中有这么一个方法. public BigDecimal divide(B ...

  5. MySQL关于between and 和 大于等于 小于等于 你所会忽略的细节

    MySQL关于between and 和 大于等于>= 小于等于<=,你所会忽略的细节 其实这两种SQL用法在大多数情况下都是一样的,比如: SELECT* FROMemployees W ...

  6. Mybatis中使用大于小于等于的正确方法

    在mybatis中sql是写在xml映射文件中的,如果sql中有一些特殊字符的话,在解析xml文件的时候就会被转义,如若不希望被转义,那该怎么办呢? 方法一:使用特殊转义字符 例如,>=开始日期 ...

  7. BigDecimal中divide方法详解

    1.首先说一下用法,BigDecimal中的divide主要就是用来做除法的运算.其中有这么一个方法. public BigDecimal divide(BigDecimal divisor,int ...

  8. BigDecimal中的ArithmeticException异常

    BigDecimal中的ArithmeticException异常之 Non-terminating decimal expansion; no exact representable decimal ...

  9. Mybatis中的大于等于和小于等于、${}和#{}的区别

    mybatis中可以直接使用>或<:但是不能直接使用>=或<=; 第一种写法(1): 原符号 < <= > >= & ' " 替换符号 ...

  10. MySQL中大于等于小于等于的写法

    由于在mybatis框架的xml中<= , >=解析会出现问题,编译报错,所以需要转译 第一种写法: 原符号 < <= > >= & ' " 替换 ...

最新文章

  1. Android Studio 引入aar文件
  2. R语言ggplot2可视化在ggplot2生成的可视化结果下方显示文本:显示一些关于数据的信息
  3. 《精通Unix下C语言编程与项目实践》目录
  4. 蓝桥杯-01字串(java)
  5. http://circles.arenaofthemes.com/
  6. iPhone11因便宜销量超预期;三星手机曝高危漏洞;xUtils 3.8.3发布 | 极客头条
  7. 思科bfd静态路由切换_配置静态路由与BFD联动
  8. 割裂的前端工程师--- 2017年前端生态窥探
  9. HTML iframe标签下 子页面调用父页面js 容易产生的跨域调用问题 Uncaught DOMException
  10. [转]coolfire黑客入门教程系列之(三)
  11. 用外挂只为“吃鸡”成功?为什么不试试正当手段!
  12. 【2023秋招】10月22日美团校招真题
  13. 714. 买卖股票的最佳时机含手续费
  14. 今日头条怎么引流?头条暴力引流方法
  15. 信安学习-day13
  16. JvisualVM使用教程
  17. 会声会影2022视频编辑软件专业版
  18. 抖音如何变现(赚钱)
  19. Flash新手教程:打造拟真生态水族鱼缸-添加动画效果
  20. Codeforces Round #263 (Div. 1)-A,B,C

热门文章

  1. 1米6农村放牛娃的奋斗历程:从同济、港理工,到清华、伯克利大学!
  2. linux系统被×××后处理经历
  3. 【长难句分析精讲】状语从句
  4. System State 转储分析案例一则
  5. 网络协议:透彻解析HTTP协议
  6. 案例分享 | 蜂窝,是“蜂窝”,虹科HK-DAT数字衰减器助力蜂窝设备测试
  7. 数据分析-Excel知识点备忘-(1)高级筛选
  8. c语言中.def文件,VC++中的.DEF文件详解
  9. Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (10061),错误代码2003
  10. html制作一个视频播放器,H5 打造属于自己的视频播放器(HTML 篇)