以前大部分关于查询计算的逻辑是在sql语句中执行的,但是有时候会出现比较复杂的计算情况,需要我们在代码中进行计算,这个时候使用BigDecimal进行计算会很方便。

BigDecimal num1 = new BigDecimal("10");
BigDecimal num2 = new BigDecimal("5");
BigDecimal num3 = null; //加法
num3 = num1.add(num2);
System.out.println("num1+num2 = "+num3); //减法
num3 = num1.subtract(num2);
System.out.println("num1-num2 = "+num3); //乘法
num3 = num1.multiply(num2);
System.out.println("num1*num2 = "+num3); //除法
num3 = num1.divide(num2);
System.out.println("num1/num2 = "+num3);

  

计算完之后可能会出现小数的情况,这种情况下需要在相应的加减乘除方法上进行变化,取2位小数且四舍五入的话可以直接在方法后加上.setScale(2, BigDecimal.ROUND_HALF_UP);

BigDecimal num1 = new BigDecimal("10");
BigDecimal num2 = new BigDecimal("5");
BigDecimal num3 = null; //加法取2位小数且四舍五入
num3 = num1.add(num2).setScale(2, BigDecimal.ROUND_HALF_UP);

  

BigDecimal进行加减乘除计算的更多相关文章

  1. Java使用BigDecimal解决精确计算的问题

    最近有人在微信上给我发了一个数学题目,如下图: 我看了之后感觉很是简单,但是却想了半天才解出来.解出来后我想到了用程序再解一遍,然而精确计算的问题却让人头疼不已. 解题思路: 思路其实很简单,暴力求解 ...

  2. 平时没有怎么用Excel做 加减乘除 计算,猛地发现,其实Excel 是一个很好的简单计算器

    平时没有怎么用Excel做 加减乘除 计算,猛地发现,其实Excel 是一个很好的简单计算器

  3. BigDecimal加减乘除计算

    一.简述 java.math.BigDecimal不可变的.任意精度的有符号十进制数.BigDecimal 由任意精度的整数非标度值(unscaledValue)和32位的整数标度(scale)组成. ...

  4. BigDecimal类(精度计算类)的加减乘除

    BigDecimal类 对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数 ...

  5. 使用BigDecimal进行精确计算工具类

    package com.develop.util; import java.math.BigDecimal; import java.math.RoundingMode; public class M ...

  6. Java BigDecimal进行精确计算

    前言 float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的.然而,它们没有提供完全精确的结果,所以 ...

  7. BigDecimal 精准加减乘除

    解决了double和float精确度的问题 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效 ...

  8. BigDecimal的加减乘除

    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行 ...

  9. 价格BigDecimal的加减乘除、小数四舍五入、比较

    num2必须改用传入String类型 //加法 BigDecimal result1 = num1.add(num2); //减法 BigDecimal result2 = num1.subtract ...

随机推荐

  1. IBM小机拆镜像换盘

    1.硬盘告警信息     2.故障排查 查看错误日志 #  errpt   -aj   C62E1EB7     查看hdisk0的信息,发现hdisk0属于rootvg # lspv   查看hdi ...

  2. 监控mysql的存储引擎

    监控mysql 显示进程状态变量 mysql> show variables like '%thread%'; +----------------------------+----------- ...

  3. C语言实现栈代码

    /* 栈的特性:先进后出. 栈在计算语言处理和将递归算法改为非递归算法等方面起着非常重要的作用. */ #define INITSIZE 100 //储存空间的初始分配量 typedef int El ...

  4. 重大更新:DeepFaceLab更新至2019.12.20

    本次更新增加SAEHD:lr_dropout参数,训练时可以打开或者禁用(默认禁用),每次换脸经过足够的训练后可以启用此选项以减少重复次数,从而获得额外的清晰度.还有一个比较有意义的更新是增加了图片元 ...

  5. C++中的取地址符(&)

    这个符号特别容易混淆, 因为在C++中, &有两种不同用法: 获得变量地址 引用传递 第一个例子, int main() { std::string s = "Hello" ...

  6. HTML5基础——笔记

    HTML5基础——笔记 近几年来,互联网+.大数据.云计算‘物联网‘虚拟现实‘人工智能.机器学习.移动互联网等IT相关新名词.新概念层出不穷,相关产业发展如火如荼.互联网+移动互联网已经深入到人民日常 ...

  7. 【SaltStack官方版】—— MANAGING THE JOB CACHE

    MANAGING THE JOB CACHE The Salt Master maintains a job cache of all job executions which can be quer ...

  8. 【NOIP2016提高A组模拟8.17】(雅礼联考day1)总结

    考的还ok,暴力分很多,但有点意外的错误. 第一题找规律的题目,推了好久.100分 第二题dp,没想到. 第三题树状数组.比赛上打了个分段,准备拿60分,因为时间不够,没有对拍,其中有分段的20分莫名 ...

  9. 序列式容器————dequeue

    #include <deque> 双端队列,可以在队头队尾进行入队出队操作 deque<int> q; q.empty(); q.push_front(s);//将s插入到队头 ...

  10. Java虚拟机之JVM系统和内存模型

    1.类加载子系统 负责从文件系统或者网络中加载Class信息,加载的信息存放在一块称之为方法区的内存空间里. 2.方法区 存放类信息.常量信息.常量池信息.包括字符串字面量和数字常量等,方法区的大小决 ...