`

java double类型数据操作工具类

    博客分类:
  • Java
 
阅读更多
http://my.oschina.net/yxwblog/blog/648545

package com.hojo.avengers.lib.utils;
 
import java.math.BigDecimal;
 
/**
 * 
 * @ClassName: DoubleOperationUtils
 * @Description: 封装double类型数据+-*%等运算操作
 * @author xuewenyu
 * @date 2016年3月14日 下午3:20:27
 *
 */
public class DoubleOperationUtils {
 
    /**
     * 修改精度
     * 
     * @param value
     * @param num
     * @return
     */
    public static double changeDecimal(double value, int num) {
        BigDecimal b = new BigDecimal(value);
        double v = b.setScale(num, 4).doubleValue();
        return v;
    }
 
    /**
     * 两个double相加方法
     * 
     * @param a
     * @param b
     * @return
     */
    public static Double doubleAdd(Double a, Double b) {
        BigDecimal b1 = new BigDecimal(Double.toString(a));
        BigDecimal b2 = new BigDecimal(Double.toString(b));
        return b1.add(b2).doubleValue();
    }
 
    /**
     * 两个double相加方法,并保留指定精度
     * 
     * @param a
     * @param b
     * @param num
     * @return
     */
    public static Double doubleAdd(Double a, Double b, int num) {
        return changeDecimal(doubleAdd(a, b), num);
    }
 
    /**
     * 两个double相减方法
     * 
     * @param a
     * @param b
     * @return
     */
    public static Double doubleSub(Double a, Double b) {
        BigDecimal b1 = new BigDecimal(Double.toString(a));
        BigDecimal b2 = new BigDecimal(Double.toString(b));
        return b1.subtract(b2).doubleValue();
    }
 
    /**
     * 两个double相减方法,并保留指定精度
     * 
     * @param a
     * @param b
     * @param num
     * @return
     */
    public static Double doubleSub(Double a, Double b, int num) {
        return changeDecimal(doubleSub(a, b), num);
    }
 
    /**
     * 两个double相乘方法
     * 
     * @param a
     * @param b
     * @return
     */
    public static Double doubleMul(Double a, Double b) {
        BigDecimal b1 = new BigDecimal(Double.toString(a));
        BigDecimal b2 = new BigDecimal(Double.toString(b));
        return b1.multiply(b2).doubleValue();
    }
 
    /**
     * 两个double相乘方法,并保留指定精度
     * 
     * @param a
     * @param b
     * @param num
     * @return
     */
    public static Double doubleMul(Double a, Double b, int num) {
        return changeDecimal(doubleMul(a, b), num);
    }
 
    /**
     * 两个double相除方法,并保留指定精度
     * 
     * @param a
     * @param b
     * @param scale
     * @return
     */
    public static Double doubleDiv(Double a, Double b, int scale) {
        BigDecimal b1 = new BigDecimal(Double.toString(a));
        BigDecimal b2 = new BigDecimal(Double.toString(b));
        return Double.valueOf(b1.divide(b2, scale, 4).doubleValue());
    }
}
分享到:
评论

相关推荐

    JAVA对象以及数据的工具类

    在Java编程语言中,工具类(Utils)是包含各种实用方法的类,这些方法通常用于执行常见的任务,如类型转换、字符串操作、集合处理等。它们使得代码更加简洁且易于维护,因为它们提供了通用功能的封装,避免了重复...

    test2_JavaDouble类型比较大小_java编程_

    标题"test2_JavaDouble类型比较大小_java编程_"提示我们关注的是Java中`Double`类型的比较操作。通常,我们可能会像处理整数那样直接使用`>`或`来比较两个`Double`值,例如`double a = 0.1; double b = 0.2; if (a +...

    JAVA数据类型思维导图

    在Java编程语言中,数据...通过以上内容,我们可以看到这个“JAVA数据类型思维导图”资源对于Java初学者来说非常有价值,它涵盖了Java编程的基础,并提供了辅助学习的视觉工具。结合实际操作,可以有效地提升编程技能。

    JAVA数据类型与Hibernate的类型映射

    在Java编程语言中,数据类型分为两种:基本数据类型(如int、char)和引用数据类型(如类、接口、数组)。而在Java持久化框架Hibernate中,这些数据类型需要与数据库中的字段类型进行映射,以便正确地存储和检索数据...

    java 基本数据类型及基本操作.ppt

    在Java程序设计中,基本数据类型和基本操作是编程的基础。本篇将详细阐述这些关键概念。 2.1 引言 在Java中,程序是由数据和对数据进行操作的指令组成的。基本数据类型是构建程序的基础,它们包括数值、字符和布尔...

    Java各种工具类

    10. **java.util.zip**: 压缩和解压缩工具类,如ZipInputStream和ZipOutputStream用于处理ZIP文件,GZIPOutputStream和GZIPInputStream处理GZIP格式的数据。 以上只是Java工具类的一部分,实际上Java API包含的工具...

    java,redis,jedis操作工具类,自己写的简易 demo

    综上所述,Java通过Jedis连接Redis并创建工具类,能有效地进行键值存储操作,提高开发效率。正确配置连接池、处理异常以及确保资源释放是保证系统稳定运行的关键。同时,对工具类进行单元测试也是确保功能完整性和...

    Java计算工具类

    "Java计算工具类"就是这样的一个类,它包含了用于基本数学运算的方法,如类型转换以及加、减、乘、除等操作。下面我们将详细讨论这个类可能包含的知识点。 1. **类型转换**: Java中的类型转换是将一种数据类型...

    json工具类,java日期转换,字符串转换等各种工具类

    在Java编程中,工具类(Util Classes)是程序员日常工作中不可或缺的部分,它们提供了一系列静态方法,用于执行常见的任务,如JSON解析、日期处理、字符串操作等。以下是对标题和描述中涉及的知识点的详细说明: 1....

    java教程课件5基本数据类型与引用类型

    Java教程中的核心知识点主要涉及Java的基本数据类型、引用类型、常用包、对象的内存分配以及字符串操作。下面将对这些内容进行详细的阐述。 1. **基本数据类型与引用类型** - Java的基本数据类型包括布尔型`...

    Java IO 工具类大全

    以上就是Java IO工具类的详细介绍,理解并熟练运用这些工具,将极大提升你在处理数据输入输出时的效率和灵活性。在实际编程中,根据需求选择合适的工具类,结合Java的异常处理机制,可以编写出稳定可靠的IO程序。

    Android-java中的Geohash工具类

    总结来说,Java中的Geohash工具类是Android开发中的强大工具,它简化了地理位置数据的处理,提高了查询效率,同时降低了存储和计算的复杂性。通过学习和利用`davidmoten-geo-686c651`这样的库,开发者可以轻松地集成...

    Java_int、double型数组常用操作工具类(分享)

    Java_int、double型数组常用操作工具类 Java_int、double型数组常用操作工具类是 Java 语言中的一种常用工具类,用于操作 int 和 double 型数组。该工具类提供了多种常用的数组操作方法,包括获取数组的最大值、...

    5年Java开发常用工具类

    在Java开发过程中,工具类是必不可少的组成部分,它们通常包含了各种通用功能的静态方法,能够极大地提高开发效率和代码质量。这位拥有五年经验的开发者分享的工具类集合,覆盖了数据库连接、格式转换、文件操作和...

    java导出到excel的工具类

    } // 其他数据类型如Double, Boolean等 } } // 输出到文件 try (FileOutputStream outputStream = new FileOutputStream(outputPath)) { workbook.write(outputStream); } workbook.close(); } } ``` 在...

    JAVA通过网络调用网络打印机的工具类

    ### JAVA通过网络调用网络打印机的工具类 #### 概述 在现代企业环境中,自动化流程的实现变得越来越重要。特别是在物流行业中,自动化打印发票和快递单能够大大提高工作效率,减少人为错误。本篇文章将深入探讨如何...

    java 写Excel工具类

    本篇文章将详细介绍如何利用Java编写一个Excel工具类,以便于高效地操作Excel文件。 首先,我们需要引入一个Java处理Excel的库,Apache POI是一个广泛使用的开源库,它提供了API来创建、修改和读取Microsoft Office...

    java常用工具类的使用

    ### Java常用工具类的使用 #### 1. Java工具概述 在Java开发中,很多复杂的算法和数据结构已经被实现并封装在标准库中,供开发者直接使用。这大大减轻了开发者的负担,使得他们能够专注于应用程序的核心逻辑。例如...

    27个java常用的工具类

    为了提高开发效率,Java提供了一系列的工具类,这些类通常包含了各种实用方法,可以帮助开发者简化代码,提高代码的可读性和可维护性。下面将详细介绍这27个常用的Java工具类及其关键知识点。 1. **Arrays**: 这个...

    javasqlTypes数据库字段类型java数据类型的对应关系

    在Java编程语言中,与数据库交互是常见的任务,这就涉及到`java.sql.Types`枚举类,它是Java数据类型与数据库字段类型之间的桥梁。`java.sql.Types`定义了一系列常量,这些常量代表了SQL标准中的数据类型,使得我们...

Global site tag (gtag.js) - Google Analytics