java不失精度的小数计算工具类

5人阅读 评论(0) 收藏 举报
分类:

1.代码

package com.xtm.java.test;

import java.math.BigDecimal;

/**
 * Author: TianMing.Xiong
 * Function:不失精度的浮点计算工具类
 * Date: Created in 18-4-17 下午5:27
 */
public class Arith {
    //默认除法运算精度
    private static final int DEF_DIV_SCANLE = 10;
    private Arith(){}

    /**
     * 加法运算
     * @param v1
     * @param v2
     * @return
     */
    public static double add(double v1,double v2){
        BigDecimal b1 = BigDecimal.valueOf(v1);
        BigDecimal b2 = BigDecimal.valueOf(v2);
        return b1.add(b2).doubleValue();
    }

    /**
     * 减法运算
     * @param v1
     * @param v2
     * @return
     */
    public static double sub(double v1,double v2){
        BigDecimal b1 = BigDecimal.valueOf(v1);
        BigDecimal b2 = BigDecimal.valueOf(v2);
        return b1.subtract(b2).doubleValue();
    }

    /**
     * 乘法运算
     * @param v1
     * @param v2
     * @return
     */
    public static double mul(double v1,double v2){
        BigDecimal b1 = BigDecimal.valueOf(v1);
        BigDecimal b2 = BigDecimal.valueOf(v2);
        return b1.multiply(b2).doubleValue();
    }

    /**
     * 除法运算
     * @param v1
     * @param v2
     * @return
     */
    public static double div(double v1,double v2){
        BigDecimal b1 = BigDecimal.valueOf(v1);
        BigDecimal b2 = BigDecimal.valueOf(v2);
        return b1.divide(b2,DEF_DIV_SCANLE,BigDecimal.ROUND_HALF_UP).doubleValue();
    }

}

查看评论

网络工程师系统可靠性计算强化训练教程

-
  • 1970年01月01日 08:00

double等大数据精确计算工具类

package com.common.util; /** * double的计算不精确,会有类似0.0000000000000002的误差,正确的方法是使用BigDecimal或者用整型 整型地...
  • Nightliar
  • Nightliar
  • 2017-05-19 15:45:32
  • 438

java保留指定小数位数的工具类

package com.viathink; import java.math.BigDecimal; /** * 数字格式化工具类 * @author LiuJunGuang * @date...
  • afgasdg
  • afgasdg
  • 2013-01-26 12:08:06
  • 4261

java用double和float进行小数计算精度不准确

java用double和float进行小数计算精度不准确大多数情况下,使用double和float计算的结果是准确的,但是在一些精度要求很高的系统中或者已知的小数计算得到的结果会不准确,这种问题是非常...
  • u010949451
  • u010949451
  • 2016-05-04 15:02:31
  • 6951

JS 四则运算(加减乘除小数运算)避免损失精度

/** 02  * 加法运算,避免数据相加小数点后产生多位数和计算精度损失。 03  * ...
  • u010025294
  • u010025294
  • 2014-04-18 11:23:36
  • 3263

js中的小数计算精度问题,修正计算精度

js 的精度问题这个网上比较多,进行加减乘除运算也难免,常见的比如: 1)在控制台 输入:1.1+0.3 运算结果是:1.4000000000000001,根本原因也就是二进制和十进制转换的问题,具体...
  • sflf36995800
  • sflf36995800
  • 2016-06-16 13:40:25
  • 2860

java中Double类型的运算精度丢失的问题 (小数点多出99999999999999)

在使用Java,double 进行运算时,经常出现精度丢失的问题,总是在一个正确的结果左右偏0.0000**1。 特别在实际项目中,通过一个公式校验该值是否大于0,如果大于0我们会做一件事情,小于0我...
  • jdsjlzx
  • jdsjlzx
  • 2015-08-25 16:12:30
  • 15944

关于java中对小数的精确处理

java 中提供BigDecimal对小数的精确处理 a) 通常用到下面的方法: 保留两位小数, 四舍五入 setScale(int newScale, int roundingMode)...
  • wanghang88
  • wanghang88
  • 2016-11-04 17:37:52
  • 3048

精确计算工具类,提供加减乘除的计算

原文地址:http://www.cnblogs.com/linjiqin/p/5550760.html package com.system.util; import java.math.BigD...
  • xiyang_1990
  • xiyang_1990
  • 2016-11-09 17:38:56
  • 212

java BigDecimal 高精度运算 小数点处理详解

保留两位小数{ 方法一:{    double   c=3.154215;    java.text.DecimalFormat myformat=new java.text.Dec...
  • catkint
  • catkint
  • 2016-03-06 21:19:37
  • 944
    个人资料
    持之以恒
    等级:
    访问量: 4916
    积分: 456
    排名: 11万+
    文章分类