`

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实现IEE754 Float类型数据

    Java实现IEE754 Float类型数据

    java常用工具类的使用

    在Java开发类库中,提供了很多工具类,我们即将学习最常见的工具类,比如对日期的操作,对集合的操作等。具体更多的工具类,请参考JavaDoc文档。 2. java.util.Date类 Date类包装了毫秒值,毫秒值表示自1970年1月1...

    Java字节数组与常见类型转换工具

    Java字节数组与常见类型转换工具,包括byte[] 与int long double float string boolean 等类型的相互转换。

    java数据类型转byte数组

    ip地址转4字节byte,char转2字节byte,byte数组转char,int整数转换为4字节的byte数组,byte数组转换为int整数,double类型转8字节数组,8位数组转double,long整数转换为8字节的byte数组,short整数转换为2字节的...

    jni C结构体转JAVA实体类

    目前支持基础数据类型int、long、foloat、double、const char *、bool的转换,也支持将数组装换为JAVA中的ArrayList。目前有个难点是将枚举类型直接转换为JAVA中的枚举,这个目前还搞不定,如果有朋友知道怎么搞,...

    随机模拟java数据插件Jmockdata.zip

    Jmockdta是一款实现模拟JAVA类型或对象的实例化并随机初始化对象的数据的工具框架。单元测试的利器。  The plug-in of Jmockdata what through random algorithm mock java data. Jmockdata插件通过随机算法模拟...

    java技术学习文档.docx

    Java提供了基本数据类型,如int、double、float等,也支持引用数据类型,如类、接口、数组等。Java的变量和方法需要在类中定义,而不能在类外部定义。Java的代码块包括静态代码块、实例代码块和构造代码块,它们会在...

    详解Java判断是否是整数,小数或实数的正则表达式

    主要介绍了详解Java判断是否是整数,小数或实数的正则表达式,非常具有实用价值,需要的朋友可以参考下。

    通过java操作excel表格的工具类库jxl

     通过java操作excel表格的工具类库  支持Excel 95-2000的所有版本  生成Excel 2000标准格式  支持字体、数字、日期操作  能够修饰单元格属性  支持图像和图表  应该说以上功能已经能够大致满足我们的需要。最...

    Java企业面试问题2.txt

    2.1java中的8种基本数据类型:boolean byte char short int float double long 2.2:基本数据类型和它对应的封装类型之间可以相互转换,从基本数据类型到封装类 型叫做装箱,从封装类型到基本数据类型叫拆箱,...

    javabiginteger源码-mock:java版的可以模拟任意数据的工具

    支持丰富多样的数据类型模拟,包括:Java基本类型、字符串、枚举、日期、数组、多维数组、集合[List|Set|Map]、枚举、Java对象等 支持泛型 支持继承 支持循环依赖、自依赖(手动开启enabledCircle) 支持忽略字段 支持...

    教学课件+Java基础知识+PPT课程+Java教学

    -数据类型:基本数据类型(int, float, double, char, boolean)和引用数据类型(类和接口)。 -变量:存储数据的容器。 -运算符:算术运算符、关系运算符、逻辑运算符等。 -控制语句:if-else, switch, for, while,...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    定义一个类,实际上就是指定该类所包含的数据和对数据进行操作的代码。 类通过关键字 class 来定义,一般格式为: 【类说明修饰符】class 类名【extends 子句】【implements 子句】 type instance-varable1; type ...

    java面试题-附答案

    2.八大数据类型 分别是byte, short, int, long, char, float, double, boolean. 1.byte byte属于Java中的整型,长度为1字节8bit,取值10000000(-128)到 01111111(127),变量初始化默认值为0,包装类Byte 2....

    commons-math3-3.6.1-API文档中文版

    math3是Apache下的一款进行数学计算的一款java开源工具...支持double、BigDecimal、String、Object、Complex Numbers等数据类型 支持二维矩阵 支持常用的矩阵操作、如矩阵转置、矩阵求逆、加减乘除 支持LU和QR分解等。

    下载excel表格工具类

    下载excel表格工具类。controller:@RequestMapping(value = "/form", method = RequestMethod.GET) public ModelAndView downloadForm(HttpServletRequest request) { try {List,Object>> listLog = ...

    javabiginteger源码-data-mocker:数据模拟者

    支持丰富多样的数据类型模拟,包括:Java基本类型、字符串、枚举、日期、数组、多维数组、集合[List|Set|Map]、枚举、Java对象等 支持泛型 支持继承 支持循环依赖、自依赖(手动开启enabledCircle) 支持忽略字段 支持...

    中南民族大学计算机科学学院java实验报告

    (2)提供快捷工具栏,包括新建、打开及保存等功能(这部分根据自己的情况选做)。如单击保存按钮能将TextArea或JTextArea的文本保存到指定的文件中。 提示:用java.awt.TextArea或javax.swing.JTextArea作为文本...

Global site tag (gtag.js) - Google Analytics