`

Java_util_Double类型运算

    博客分类:
  • Java
 
阅读更多

public class Arithmetic4Double {    

        //默认除法运算精度    

        private static final int DEF_DIV_SCALE = 10;    

           

        //所有方法均用静态方法实现,不允许实例化    

        private Arithmetic4Double() {}    

        

        /**  

         * 实现浮点数的加法运算功能  

         * @param v1 加数1  

         * @param v2 加数2  

         * @return v1+v2的和  

         */    

        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 v1-v2的差  

         */    

        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 v1×v2的积  

         */    

        public static double multi(double v1,double v2) {    

            BigDecimal b1 = new BigDecimal(Double.toString(v1));    

            BigDecimal b2 = new BigDecimal(Double.toString(v2));    

            return b1.multiply(b2).doubleValue();    

        }    

        

        /**  

         * 实现浮点数的除法运算功能  

         * 当发生除不尽的情况时,精确到小数点以后DEF_DIV_SCALE位(默认为10位),后面的位数进行四舍五入。  

         * @param v1 被除数  

         * @param v2 除数  

         * @return v1/v2的商  

         */    

        public static double div(double v1,double v2) {    

         BigDecimal b1 = new BigDecimal(Double.toString(v1));    

            BigDecimal b2 = new BigDecimal(Double.toString(v2));    

            return b1.divide(b2,DEF_DIV_SCALE,BigDecimal.ROUND_HALF_UP).doubleValue();    

        }    

        

        /**  

         * 实现浮点数的除法运算功能  

         * 当发生除不尽的情况时,精确到小数点以后scale位,后面的位数进行四舍五入。  

         * @param v1 被除数  

         * @param v2 除数  

         * @param scale 表示需要精确到小数点以后几位  

         * @return v1/v2的商  

         */    

        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();    

        }    

    }

分享到:
评论

相关推荐

    sizeyunsuan.rar_java 四则运算_四则运算

    在实际运行中,用户可以输入数字和选择运算类型,程序会动态地完成运算。 标签“java_四则运算 四则运算”表明这个压缩包中的内容着重于使用Java进行基本的数学计算,是一个不错的学习资源。提供的...

    JAVA_总结JAVA_总结.doc

    - **自动转换**:当不同数据类型进行运算时,会按照特定规则自动转换。 - **强制转换**:需要显式地将一个数据类型转换为另一个数据类型,如 `(int)rise`。 3. **运算符**: - **赋值运算符**:`=` - **算术...

    Java_SE应用部分-34

    Java的设计理念之一是“万物皆对象”,但基本数据类型(如`int`、`double`等)并不遵循这一规则。为了解决这一矛盾,Java引入了包装类,将基本数据类型封装成对象形式。例如,`Integer`是`int`的包装类,可以利用`...

    java.四则运算器

    在四则运算中,根据输入的数字类型,可能需要进行类型转换,例如将`int`转换为`double`以执行精确的浮点运算。 接下来,我们将探讨运算符的使用。在Java中,加法运算符是`+`,减法是`-`,乘法是`*`,除法是`/`。...

    实现了四则运算的java计算器源码

    在Java编程语言中,创建一个实现四则运算的计算器是一个常见的练习项目,它可以帮助开发者熟悉基本的输入输出处理、逻辑控制以及数学运算。本项目名为"MyCalculator",它旨在模仿Windows计算器的功能,不仅支持基本...

    calculate.rar_java表达式运算

    通常,我们使用 `java.util.Scanner` 类从用户那里获取输入,用于计算表达式。例如: ```java Scanner input = new Scanner(System.in); System.out.println("请输入第一个数字:"); double num1 = input....

    Ca.rar_java 科学计算器_科学计算器 Java

    在Java中,我们可以使用内置的数据类型如`int`、`double`来存储数值,并使用算术运算符(`+`、`-`、`*`、`/`)来执行这些运算。例如,要进行加法运算,可以编写如下代码: ```java public double add(double num1, ...

    JAVA计算器_java计算器_

    import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); Calculator calc = new Calculator(); while (true) { System.out....

    计算器java实现报告

    这些方法接收两个double类型的参数,代表要进行运算的数字。 ```java public class Calculator { public double add(double num1, double num2) { return num1 + num2; } public double subtract(double num1,...

    java上机实验.pdf

    - **数据类型**:Java有八种基本数据类型,包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。 - **变量定义**:声明变量时需要指定数据类型,如`int width, ...

    Finction-sizple.rar_Java编程_Java_

    1. **基础数据类型**:计算器可能使用`int`或`double`类型来存储数值,`int`用于整数,`double`用于浮点数,以支持小数运算。 2. **运算符**:Java提供了算术运算符,如`+`、`-`、`*`和`/`,用于执行加、减、乘、除...

    JAVA计算器 不包含括号可运算乘除加减以及三角函数

    对于浮点数运算,可以使用`double`或`float`类型。例如: ```java double x = 5.2; double y = 3.1; double result = x * y; ``` 接下来,我们讨论三角函数。Java的`java.lang.Math`类提供了许多数学函数,包括...

    Java 实例 - 数字求和运算源代码-详细教程.zip

    在数字求和运算中,我们主要关注基本数据类型,如`int`(整型)和`double`(双精度浮点型)。`int`用于存储整数,而`double`则用于存储带有小数点的数值。在这个实例中,我们将使用`int`类型来存储我们的数字和。 ...

    Java上机指导教材

    实验2-1展示了char、int、float和double之间的转换和运算,实验2-2则通过强制类型转换将double类型的变量赋值给int类型的变量,这些实验加深了对Java数据类型和类型转换的理解。 总体来说,这份上机指导教材以实践...

    Scientific Calculator.zip_Java编程_Java_

    Java的`java.util.Stack`类可以方便地实现这一点。解析器还需要考虑括号的嵌套和运算符的优先级,如先乘除后加减。 此外,我们还需要处理错误情况,如除以零或输入非法的数学表达式。可以抛出自定义的异常,如`...

    简单的科学计算器JAVA代码实现

    科学计算通常涉及浮点数运算,Java中的`double`类型非常适合处理这种类型的计算。所有的计算方法都应处理`double`类型的参数和返回值。 5. 科学计数法: 要实现科学计数法,我们需要检查数值是否过大或过小,然后...

    JAVA类型转换.pdf

    - **日期类型转换**:Java中的日期处理通常涉及`java.util.Date`类或`java.time`包中的类,如`LocalDate`, `LocalTime`等,它们有自己的转换方法。 ### 类型转换细节 - **自动类型转换**: - 对于byte, short, ...

    2.zip_Java编程_Java_

    Applet是Java的一种特殊类型的应用程序,它可以嵌入到Web页面中,由用户的浏览器运行。 在Java编程中,Applet是通过Java编写的轻量级客户端程序,它们通常用于增强网页的交互性。要创建一个Java Applet,你需要继承...

    java-counter.rar_JAVA counter

    1. **基本数据类型**:Java有八种基本数据类型,包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。在实现计算器时,我们将使用这些类型来存储和操作数值。 2. **...

    java_self-taught:java学习过程

    在“java_self-taught:java学习过程”这个主题中,我们可以深入探讨Java编程语言的基础知识,特别是关于数据类型和运算规则以及编程机制。Java是一种广泛使用的面向对象的编程语言,以其跨平台、高效和安全性著称。...

Global site tag (gtag.js) - Google Analytics