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实现的泛型编程,分为两部分,第一部分创建泛型类,并实例化...第二部分用户自行输入0--4,选择要进行的加减乘除运算或退出,再输入要进行运算的两个数,并返回运算结果及结果类型。 代码完美运行。
将近250行的算法 实现了通过字符串进行加减乘除四则运算 纯通过处理字符串和数组实现 希望能帮助大家: 例如:String input "33+26 77+70"; String result ""; try { result Account...
这个项目"Java实现计算器加减乘除功能"旨在帮助开发者巩固面向对象编程、控制结构、运算符以及异常处理等基本技能。下面将详细介绍这个项目可能涉及的知识点。 1. **面向对象编程**:Java是一种面向对象的语言,...
### 通过Java代码实现加减乘除的简单算法 在本篇文章中,我们将详细解析一个简单的Java程序,该程序能够实现基本的算术运算:加法、减法、乘法和除法,并将结果输出到控制台。这个例子非常适合初学者理解和实践面向...
通过以上方式,我们可以在Java中轻松实现加减乘除运算,无论是简单的直接运算,还是封装在自定义方法中,或者在面向对象的环境中。在实际开发中,理解这些基本操作及其在不同场景下的应用是非常重要的。
根据给定的文件信息,我们可以总结出以下关于Java实现加减乘除运算的相关知识点: ### 一、程序结构与组织 这段代码展示了一个简单的Java程序,用于执行基本的算术运算(加法、减法、乘法和除法)。程序通过用户...
Java编写的计算器图形界面实现加减乘除带括号运算 版本1.0 1、图形化界面 2、计算器显示部分分为两个区域:第一行显示输入将要计算的数值及符号,第二行显示结果,第一行字体要小,第二行字体要大,且加粗。 ...
一个java编写的简易计算器源码 老师布置的作业,实现简单的加减乘除
JAVA实现矩阵加减乘除求逆运算 矩阵运算是线性代数中的一种基本操作,包括矩阵加减乘除和求逆运算。JAVA语言可以实现这些运算操作,本文将详细介绍JAVA实现矩阵加减乘除求逆运算的方法。 矩阵加法是将两个矩阵相加...
"使用 Java 实现加减乘除运算" Java 语言是当前最流行的编程语言之一,它广泛应用于 Android 应用程序开发、Web 应用程序开发、企业软件开发等领域。Java 语言的强大功能和灵活性使其广泛应用于各个领域。今天,...
JNI(Java Native Interface)是Java平台的一个重要特性,它允许Java...在“用JNI技术实现加减乘除算法”的示例中,我们看到了如何从Java层调用C/C++代码来执行基本的数学运算,这为解决特定问题提供了灵活性和效率。
Java 实现加减乘除运算详解 Java 是一种流行的编程语言,广泛应用于移动应用、Web 开发、桌面应用等领域。在进行数据处理时,加减乘除运算是最基本也是最常用的操作之一。那么,如何使用 Java 实现加减乘除运算呢?...
在这个名为"JAVA计算器可实现整数加减乘除运算"的项目中,我们关注的是一个具有用户友好界面的计算器,能够执行基本的数学运算,包括加法、减法、乘法和除法。 首先,我们需要了解Java中的GUI库,如Java Swing或...
在这个“java加减乘除计算器界面编程”项目中,我们需要实现一个简单的计算器应用,具备加、减、乘、除四种基本运算功能,并且能够处理用户输入非数字字符时的异常。 首先,我们看到程序使用了`javax.swing`包来...
在本例中,我们将探讨如何通过设计一个接口来实现两数之间的加、减、乘、除操作。 首先,我们创建一个名为`Calculator`的接口,该接口定义了四个方法:`add()`, `subtract()`, `multiply()`, 和 `divide()`,分别...
唔,其实里面就是一个工具类,加减乘除、保留两位小数。一共5个方法。。。emmmm.....为啥分这么高呢。因为宝宝想分想疯了。 附代码,有土豪就打赏打赏,没土豪的直接拿去使吧。 package cn.cisdom.base.utils; ...
Java计算器,实现了加减乘除
java编写的计算器,能实现加减乘除。 //***该梦幻计算器与Windows附件自带计算器的标准版功能、界面相仿***// //******但还不支持键盘操作,如有需要,下一次等级将满足你**********// import java.awt.*; import ...
对复数类进行加减乘除的计算,打印程序另外写出,在主函数中调用,除法和乘法有别于一般的算术运算,需要按照特定计算规则。
标题提到的"加减乘除精确算法"就是为了解决这个问题而设计的。 这个工具类的主要功能是提供对浮点数的精确运算,确保在进行加、减、乘、除操作时不会因为浮点数表示的不精确性而导致错误的结果。通常,这种精确运算...