`
齐晓威_518
  • 浏览: 617976 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

JAVA实现精确的加减乘除

 
阅读更多

package lc.util;

import java.math.BigDecimal;

public class MathHelper {
 private static final int DEF_DIV_SCALE = 10;

 private MathHelper() {

 }

 /**
  * 提供精确的加法运算。
  * 
  * @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();
 }

 /**
  * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 小数点以后10位,以后的数字四舍五入。
  * 
  * @param v1
  *            被除数
  * @param v2
  *            除数
  * @return 两个参数的商
  */
 public static double div(double v1, double v2) {
  return div(v1, v2, DEF_DIV_SCALE);
 }

 /**
  * 提供(相对)精确的除法运算。当发生除不尽的情况时,由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();
 }
}

分享到:
评论

相关推荐

    JAVA泛型加减乘除

    这是一个使用JAVA实现的泛型编程,分为两部分,第一部分创建泛型类,并实例化...第二部分用户自行输入0--4,选择要进行的加减乘除运算或退出,再输入要进行运算的两个数,并返回运算结果及结果类型。 代码完美运行。

    输入字符串实现加减乘除四则运算(java)

    将近250行的算法 实现了通过字符串进行加减乘除四则运算 纯通过处理字符串和数组实现 希望能帮助大家: 例如:String input &quot;33+26 77+70&quot;; String result &quot;&quot;; try { result Account...

    Java实现计算器加减乘除功能.zip

    这个项目"Java实现计算器加减乘除功能"旨在帮助开发者巩固面向对象编程、控制结构、运算符以及异常处理等基本技能。下面将详细介绍这个项目可能涉及的知识点。 1. **面向对象编程**:Java是一种面向对象的语言,...

    通过java代码实现加减乘除的简单算法

    ### 通过Java代码实现加减乘除的简单算法 在本篇文章中,我们将详细解析一个简单的Java程序,该程序能够实现基本的算术运算:加法、减法、乘法和除法,并将结果输出到控制台。这个例子非常适合初学者理解和实践面向...

    java 实现加减乘除的方法

    通过以上方式,我们可以在Java中轻松实现加减乘除运算,无论是简单的直接运算,还是封装在自定义方法中,或者在面向对象的环境中。在实际开发中,理解这些基本操作及其在不同场景下的应用是非常重要的。

    java 实现加减乘除

    根据给定的文件信息,我们可以总结出以下关于Java实现加减乘除运算的相关知识点: ### 一、程序结构与组织 这段代码展示了一个简单的Java程序,用于执行基本的算术运算(加法、减法、乘法和除法)。程序通过用户...

    Java编写的计算器图形界面实现加减乘除带括号运算

    Java编写的计算器图形界面实现加减乘除带括号运算 版本1.0 1、图形化界面 2、计算器显示部分分为两个区域:第一行显示输入将要计算的数值及符号,第二行显示结果,第一行字体要小,第二行字体要大,且加粗。 ...

    一个java编写的简易计算器源码 实现简单的加减乘除

    一个java编写的简易计算器源码 老师布置的作业,实现简单的加减乘除

    JAVA实现矩阵加减乘除求逆运算.doc

    JAVA实现矩阵加减乘除求逆运算 矩阵运算是线性代数中的一种基本操作,包括矩阵加减乘除和求逆运算。JAVA语言可以实现这些运算操作,本文将详细介绍JAVA实现矩阵加减乘除求逆运算的方法。 矩阵加法是将两个矩阵相加...

    如何使用java来实现加减乘除运算.docx

    "使用 Java 实现加减乘除运算" Java 语言是当前最流行的编程语言之一,它广泛应用于 Android 应用程序开发、Web 应用程序开发、企业软件开发等领域。Java 语言的强大功能和灵活性使其广泛应用于各个领域。今天,...

    用JNI技术实现加减乘除算法

    JNI(Java Native Interface)是Java平台的一个重要特性,它允许Java...在“用JNI技术实现加减乘除算法”的示例中,我们看到了如何从Java层调用C/C++代码来执行基本的数学运算,这为解决特定问题提供了灵活性和效率。

    如何使用java来实现加减乘除运算.pdf

    Java 实现加减乘除运算详解 Java 是一种流行的编程语言,广泛应用于移动应用、Web 开发、桌面应用等领域。在进行数据处理时,加减乘除运算是最基本也是最常用的操作之一。那么,如何使用 Java 实现加减乘除运算呢?...

    JAVA计算器可实现整数加减乘除运算

    在这个名为"JAVA计算器可实现整数加减乘除运算"的项目中,我们关注的是一个具有用户友好界面的计算器,能够执行基本的数学运算,包括加法、减法、乘法和除法。 首先,我们需要了解Java中的GUI库,如Java Swing或...

    java加减乘除计算器界面编程

    在这个“java加减乘除计算器界面编程”项目中,我们需要实现一个简单的计算器应用,具备加、减、乘、除四种基本运算功能,并且能够处理用户输入非数字字符时的异常。 首先,我们看到程序使用了`javax.swing`包来...

    Java:接口实现两数的加减乘除

    在本例中,我们将探讨如何通过设计一个接口来实现两数之间的加、减、乘、除操作。 首先,我们创建一个名为`Calculator`的接口,该接口定义了四个方法:`add()`, `subtract()`, `multiply()`, 和 `divide()`,分别...

    Java 加减乘除工具类(解决精度损失问题)

    唔,其实里面就是一个工具类,加减乘除、保留两位小数。一共5个方法。。。emmmm.....为啥分这么高呢。因为宝宝想分想疯了。 附代码,有土豪就打赏打赏,没土豪的直接拿去使吧。 package cn.cisdom.base.utils; ...

    Java计算器,实现了加减乘除

    Java计算器,实现了加减乘除

    java编写的计算器,能实现加减乘除

    java编写的计算器,能实现加减乘除。 //***该梦幻计算器与Windows附件自带计算器的标准版功能、界面相仿***// //******但还不支持键盘操作,如有需要,下一次等级将满足你**********// import java.awt.*; import ...

    Java中复数类的计算,对复数进行加减乘除

    对复数类进行加减乘除的计算,打印程序另外写出,在主函数中调用,除法和乘法有别于一般的算术运算,需要按照特定计算规则。

    加减乘除精确算法

    标题提到的"加减乘除精确算法"就是为了解决这个问题而设计的。 这个工具类的主要功能是提供对浮点数的精确运算,确保在进行加、减、乘、除操作时不会因为浮点数表示的不精确性而导致错误的结果。通常,这种精确运算...

Global site tag (gtag.js) - Google Analytics