BigDecimal数据的加 减 乘 除 N次幂运算 以及比较大小
在实际开开发过程中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次幂运算 以及比较大小的更多相关文章
- freemarker 数据做加减计算
controller的部分: @Controller@RequestMapping("/ContactsFrameIndex")public class ContactsFrame ...
- jQuery实现购物车物品数量的加减
基于jquery的一款代码,实现购物车数据的加减,在淘宝网.京东商城购物时时经常见到的一个功能,点击文本框两侧的“+”与“-”,就可以增加或减少文本框内的数字值,每次步长为1,当然这个是可以自己设置的 ...
- SQLServer学习笔记<>日期和时间数据的处理(cast转化格式、日期截取、日期的加减)和 case表达式
日期和时间数据的处理. (1)字符串日期 ‘20080301’,这一串为字符串日期,但必须保证为四位的年份,两位的月份,两位的日期.例如,查询订单表日期大于‘20080301’.可以这样写: 1 se ...
- mysql中使用日期加减时无法识别年-月格式数据的问题,%Y-%m"这种格式数据
最新做报表统计的时候处理按月统计部分时发现,虽然使用 DATE_FORMAT( time, '%Y-%m' ) 函数可以将日期格式转成年-月,但是如果是参数是年-月格式,即"2018-10& ...
- BigDecimal数据加法返回值接收
1.相加 两个BigDecimal变量a,b. 如果想进行相加,即a加b的话,返回值需要使用a进行接收,如下: a = a.add(b); BigDecimal为不可变类, 所以执行运算的结果需要再返 ...
- Java 中日期的几种常见操作 —— 取值、转换、加减、比较
Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提 ...
- ORACLE日期加减【转】
首先,感谢这个作者的辛勤汗水给我们带来的总结,因为日期函数操作对平时的使用真的是很常用,所以收藏一下以作后期使用. 原贴地址:http://www.cnblogs.com/xiao-yu/archiv ...
- Android 自定义控件 EditText输入框两边加减按钮Button
自己封装的一个控件:EditText两边放加减按钮Button来控制输入框的数值 Demo 下载地址: 第一版:http://download.csdn.net/detail/zjjne/674086 ...
- 线性代数-矩阵-【3】矩阵加减 C和C++实现
点击这里可以跳转至 [1]矩阵汇总:http://www.cnblogs.com/HongYi-Liang/p/7287369.html [2]矩阵生成:http://www.cnblogs.com/ ...
随机推荐
- PAT Basic 1080 MOOC期终成绩 (25 分)
对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分( ...
- Maven 发布项目到Jetty服务器———5
官网: http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html 1.安装配置插件 2. 运行 命令: je ...
- maven jar 包不在项目中
maven update project maven build
- synchronized 和 ReentrantLock 区别是什么?(未完成)
synchronized 和 ReentrantLock 区别是什么?(未完成)
- 线程池中 submit()和 execute()方法有什么区别?(未完成)
线程池中 submit()和 execute()方法有什么区别?(未完成)
- resultSet.getMetaData() 获得表结构
1.得到查询结果,一个数据集 rs = stat.executeQuery("select * from " + table_name + " limit " ...
- Mongo Backup
#!/bin/sh # This script is run on every mongo node. However, it checks to see if this node is the pr ...
- 基于Kinect 2.0深度摄像头的三维重建
刚今天验收的实验,记录一下. 是比较基础的三维重建内容. 算是三维重建入门. 系统:windows 环境:visual studio 2013 语言:c++ 相关:OpenCV 2.Kinect SD ...
- Python 10.2
time 模块: strftime('%y%m%s',yesterday) ==>返回一个字符串代表的日期
- Java Part 001( 02_01_理解面向对象 )
Java完全支持面向对象的三个基本特征: 继承.封装.多态 面向对象的方式实际上由OOA(面向对象分析).OOD(面向对象设计).OOP(面向对象编程)三个部分有机组成 目前业界统一采用UML(统一建 ...