1. 主要为double类型计算
package com.xf.utils;import java.math.BigDecimal;public abstract class AmountUtil {private AmountUtil() {}/*** 加法运算* @param v1* @param v2* @return*/public static double add(double v1, double v2) {BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.add(b2).doubleValue();}/*** 减法运算* @param v1被减数* @param v2减数* @return*/public static double sub(double v1, double v2) {BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.subtract(b2).doubleValue();}/*** 乘法运算* @param v1被乘数* @param v2乘数* @return*/public static double mul(double v1, double v2) {BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.multiply(b2).doubleValue();}/*** * 除法运算,当发生除不尽的情况时,精确到小数点以后2位,以后的数字四舍五入* @param v1被除数* @param v2除数* @return*/public static double div(double v1, double v2) {return div(v1, v2, 2);}/*** * 除法运算,当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入* @param v1被除数* @param v2除数* @param scale精确到小数点以后几位* @return*/public static double div(double v1, double v2, int scale) {if (scale < 0) {throw new IllegalArgumentException("The scale must be a positive integer or zero");}BigDecimal b1 = new BigDecimal(Double.toString(v1));BigDecimal b2 = new BigDecimal(Double.toString(v2));return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();}/*** 四舍五入* @param v需要四舍五入的数字* @param scale小数点后保留几位* @return*/public static double round(double v, int scale) {if (scale < 0) {throw new IllegalArgumentException("The scale must be a positive integer or zero");}BigDecimal b = new BigDecimal(Double.toString(v));BigDecimal one = new BigDecimal("1");return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();}/*** 判断 a 与 b 是否相等* @param a* @param b* @return a==b 返回true, a!=b 返回false*/public static boolean equal(double a, double b) {BigDecimal v1 = BigDecimal.valueOf(a);BigDecimal v2 = BigDecimal.valueOf(b);if (v1.compareTo(v2) == 0) {return true;}return false;}/*** 判断 a 是否大于等于 b* @param a* @param b* @return a&gt;=b 返回true, a&lt;b 返回false*/public static boolean greaterThanOrEqualTo(double a, double b) {BigDecimal v1 = BigDecimal.valueOf(a);BigDecimal v2 = BigDecimal.valueOf(b);if (v1.compareTo(v2) >= 0) {return true;}return false;}/*** 判断 a 是否大于 b* @param a* @param b* @return a&gt;b 返回true, a&lt;=b 返回 false*/public static boolean bigger(double a, double b) {BigDecimal v1 = BigDecimal.valueOf(a);BigDecimal v2 = BigDecimal.valueOf(b);if (v1.compareTo(v2) == 1) {return true;}return false;}/*** 判断 a 是否小于 b* * @param a* @param b* @return a&lt;b 返回true, a&gt;=b 返回 false*/public static boolean lessThan(double a, double b) {BigDecimal v1 = BigDecimal.valueOf(a);BigDecimal v2 = BigDecimal.valueOf(b);if (v1.compareTo(v2) == -1) {return true;}return false;}/*** 四舍五入保留小数点后两位* @param num* @return*/public static double roundDown(double num) {return Double.valueOf(String.format("%.2f", num));//return new BigDecimal(num).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();}public static void main(String[] args) {Double a = 101.005D;Double b = 0.0D;Double s = AmountUtil.sub(a, b);System.out.println(AmountUtil.roundDown(s));System.out.println(AmountUtil.div(101.1D, 1D, 2));}
}

java常用计算公式相关推荐

  1. java常用的集合对象_java常用实体类、集合类

    java常用实体类.集合类 [转自51cto博客jichangwei的BLOG] 1:String类,字符串是常量,他们的值在创建之后不能更改,可以共享. equals()用来比较两个字符串的值,== ...

  2. Java常用监控工具

    2019独角兽企业重金招聘Python工程师标准>>> Java常用监控工具 jps:虚拟机进程状况工具 展示虚拟机进程ID及其执行的主类名称(经常用到) 格式:jps [optio ...

  3. java. 算法分析,Java常用算法分析

    Java常用算法分析 一  插入排序法: 说明: 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止. Java代码 public class I ...

  4. 这些Java常用类,你必须要学会,还不快快收藏?(近两万字详细介绍)

    零基础学习之Java常用类 概述 包装类 和数学相关的类 String类 创建字符串对象 使用构造方法 使用静态方法 使用" " + 拼接 字符串对象的比较 字符串的常用方法 可变 ...

  5. java.util类,GitHub - yutaolian/JavaUtils: 总结的一些Java常用的util类

    JavaUtils 总结的一些Java常用的util类 ###1.格式化时间 SimpleDateFormat(DateFormat)实现线程安全的使用 众所周知SimpleDateFormat(Da ...

  6. 第二章 java常用开发工具以及程序的编写

    2019独角兽企业重金招聘Python工程师标准>>> 第二章 java常用开发工具以及程序的编写 1. 程序的概念         2. java程序的开发的三个步骤        ...

  7. Python:pmml格式文件的简介、安装、使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略

    Python:pmml格式文件的简介.安装.使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略 目录 pmml格式文件的简介 1.PMML结构 pmml安装 pmm ...

  8. Java常用类之要点总结

    Java常用类之要点总结

  9. java常用的发送http请求的工具方法

    java常用的HttpURLConnection 方式发送http请求的工具方法 需要的jar包有jsp-api.jar .servlet-api.jar .dom4j.jar package cn. ...

最新文章

  1. bootstrap modal 弹出效果
  2. 20项任务横扫BERT!CMU谷歌发布XLNet,NLP再迎屠榜时刻
  3. 最近在弄ionic3的时候遇到的一些问题(遇到就更新)
  4. mysql事务隔离级别与设置
  5. 机器学习模型解释性工具SHAP
  6. 社会管理网格化 源码_全市社会治理网格化服务管理工作调研
  7. axios基础和封装
  8. memset 结构体内指针_SideTable结构
  9. java如何实现多继承
  10. iOS开发-开发总结(四)
  11. python基础 list和tuple
  12. 如何备份和还原您的Kubernetes集群资源和持久卷?
  13. 231. 2的幂 golang
  14. STM32那点事(6)_定时器(上)
  15. Java学习心得——整数太大的错误
  16. Linux面试题,浅析常见Linux命令面试题及答案
  17. C语言程序100例之C#版-029
  18. matlab 16qam误码率图,16QAM理论误码率与实际误码率MATLAB仿真程序(最新整理)
  19. 智慧供水:整体解决方案建设需求
  20. element表格设置fixed后滚动条滚动时右下角空白块

热门文章

  1. 吴思进:区块链的未来将是“万物互联+万链互联
  2. Resize a VMWare disk (zz)
  3. steam 平台 饥荒 联机版 Linux云服务器 搭建教程
  4. python从abc发展起来_Python是如何一步步成为热门编程语言的?
  5. 独立之精神,自由之思想
  6. 编译android源码!2021年展望Android原生开发的现状,复习指南
  7. 关于使用Swagger-ui时文档显示实体类中隐藏部分字段的问题
  8. 数据库:PostgreSQL 和 MySQL对比
  9. css小鸡破壳,小班美术教案《小鸡破壳》
  10. 火遍日本 IT 界的「鱼书」终出续作,原来进阶深度学习竟然那么简单