在实际开开发过程中BigDecimal是一个经常用到的类:

  它可以进行大数值的精确却运算,下面介绍一下它的加-减-乘-除以及N次幂的操作操作

import java.math.BigDecimal;

public class Test02 {

    public static void main(String[] args) {
BigDecimal num1 = new BigDecimal(5000);
BigDecimal num2 = new BigDecimal(20);
BigDecimal num3 = new BigDecimal(0);
BigDecimal num4 = new BigDecimal(20);
//加法 add
System.out.println("**********加法运算 add ****************");
num3 = num1.add(num2);
System.out.println(num1+"+"+num2+"="+num3);
//减法 subtract
System.out.println("**********减法运算 subtract****************");
num3 = num1.subtract(num2);
System.out.println(num1+"-"+num2+"="+num3);
//除法 divide
System.out.println("**********除法运算 divide****************");
num3 = num1.divide(num2);
System.out.println(num1+"/"+num2+"="+num3);
//乘法
System.out.println("**********乘法运算 multiply ****************");
num3 = num1.multiply(num2);
System.out.println(num1+"*"+num2+"="+num3);
//N次幂
System.out.println("**********N次幂运算 pow****************");
num3 = num1.pow(2);
System.out.println(num1+"^"+2+"="+num3);
//比较 -1 小于 0 等于 1 大于
System.out.println("**********比较 -1 小于 0 等于 1 大于****************");
int i = num1.compareTo(num2);
int j = num4.compareTo(num2);
int k = num3.compareTo(num2);
System.out.println(num1+"大于"+num2+"====compareTo结果是"+i);
System.out.println(num4+"等于"+num2+"====compareTo结果是"+j);
System.out.println(num3+"小于"+num2+"====compareTo结果是"+k);
System.out.println(num1+"/"+33+num1.divide(new BigDecimal(33),2, BigDecimal.ROUND_HALF_EVEN)+"保留两位小数"); } }

运算结果:

在进行除法运算时很容易出现不整除的现象,不整除就会报出如下错误:

Exception in thread "main" java.lang.ArithmeticException: 

出现此错误时:使用BigDecimal.ROUND_HALF_EVEN 

 System.out.println(num1+"/"+33+num1.divide(new BigDecimal(33),2, BigDecimal.ROUND_HALF_EVEN)+"保留两位小数");
为不整除的书保留两位小数显示

BigDecimal数据的加 减 乘 除 N次幂运算 以及比较大小的更多相关文章

  1. freemarker 数据做加减计算

    controller的部分: @Controller@RequestMapping("/ContactsFrameIndex")public class ContactsFrame ...

  2. jQuery实现购物车物品数量的加减

    基于jquery的一款代码,实现购物车数据的加减,在淘宝网.京东商城购物时时经常见到的一个功能,点击文本框两侧的“+”与“-”,就可以增加或减少文本框内的数字值,每次步长为1,当然这个是可以自己设置的 ...

  3. SQLServer学习笔记<>日期和时间数据的处理(cast转化格式、日期截取、日期的加减)和 case表达式

    日期和时间数据的处理. (1)字符串日期 ‘20080301’,这一串为字符串日期,但必须保证为四位的年份,两位的月份,两位的日期.例如,查询订单表日期大于‘20080301’.可以这样写: 1 se ...

  4. mysql中使用日期加减时无法识别年-月格式数据的问题,%Y-%m"这种格式数据

    最新做报表统计的时候处理按月统计部分时发现,虽然使用 DATE_FORMAT( time, '%Y-%m' ) 函数可以将日期格式转成年-月,但是如果是参数是年-月格式,即"2018-10& ...

  5. BigDecimal数据加法返回值接收

    1.相加 两个BigDecimal变量a,b. 如果想进行相加,即a加b的话,返回值需要使用a进行接收,如下: a = a.add(b); BigDecimal为不可变类, 所以执行运算的结果需要再返 ...

  6. Java 中日期的几种常见操作 —— 取值、转换、加减、比较

    Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提 ...

  7. ORACLE日期加减【转】

    首先,感谢这个作者的辛勤汗水给我们带来的总结,因为日期函数操作对平时的使用真的是很常用,所以收藏一下以作后期使用. 原贴地址:http://www.cnblogs.com/xiao-yu/archiv ...

  8. Android 自定义控件 EditText输入框两边加减按钮Button

    自己封装的一个控件:EditText两边放加减按钮Button来控制输入框的数值 Demo 下载地址: 第一版:http://download.csdn.net/detail/zjjne/674086 ...

  9. 线性代数-矩阵-【3】矩阵加减 C和C++实现

    点击这里可以跳转至 [1]矩阵汇总:http://www.cnblogs.com/HongYi-Liang/p/7287369.html [2]矩阵生成:http://www.cnblogs.com/ ...

随机推荐

  1. 算法设计与分析 - 李春葆 - 第二版 - pdf->word v3

    1.1 第1章─概论 练习题 . 下列关于算法的说法中正确的有( ). Ⅰ.求解某一类问题的算法是唯一的 Ⅱ.算法必须在有限步操作之后停止 Ⅲ.算法的每一步操作必须是明确的,不能有歧义或含义模糊 Ⅳ. ...

  2. linux实操_硬盘

    1.硬盘分区 硬盘说明: 查看分区和挂载情况 语法: lsblk -f lsblk 2.增加硬盘 (1)虚拟机添加硬盘 (2)分区 fdisk /dev/sdb (3)格式化 mkfs -text4 ...

  3. stm32如何核对flash大小和sram大小

    以stm32f103zet6为例,直接上图:

  4. 父元素设置固定宽度并设置overflow:scroll,如何让子元素撑开父元素

    <div class="a"> <div class="b"> <div class="c">内容内容, ...

  5. SIGAI机器学习第六集 决策树

    讲授决策树的基本概念,分类与回归树的原理,决策树的表示能力,决策树的训练算法,寻找最佳分裂的原理,叶子节点值的标记,属性缺失与替 代分裂,决策树的剪枝算法,决策树应用. 非常直观和易于理解的机器学习算 ...

  6. fastJson与jackson性能对比

    转载:https://blog.csdn.net/u013433821/article/details/82905222最近项目用到fastJson和jackson,为了决定到底弃用哪个,随手写了个测 ...

  7. Share Point安裝

    Win7上裝不了WSS(Sharepoint3.3),而安裝SharePoint Foundation 2010時候又由於不能跑PrerequisiteInstaller.exe,很多該裝的組件裝不上 ...

  8. BigDecimal 3个toString()方法区别

    BigDecimal 的toEngineeringString.toPlainString和toString方法的区别: toEngineeringString:有必要时使用工程计数法.工程记数法是一 ...

  9. XML、HTML、XHTML的关系

    标记语言 XML.HTML.XHTML这三者都有ML.ML(Markup Language)标记语言在维基百科中的解释是: 一种将文本以及文本相关的信息结合起来,展示出关于文档结构和数据处理细节的计算 ...

  10. 【概率论】3-9:多随机变量函数(Functions of Two or More Random Variables)

    title: [概率论]3-9:多随机变量函数(Functions of Two or More Random Variables) categories: - Mathematic - Probab ...