工具类

package ……;

import java.math.BigDecimal;

/**
* Created by kongqw on 2015/12/10.
*/
public final class BigDecimalUtil {
private BigDecimalUtil() {
} /**
* 加法运算
*
* @param d1 d1
* @param d2 d2
* @return
*/
public static double add(double d1, double d2) {
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.add(b2).doubleValue();
} /**
* 减法运算
*
* @param d1 d1
* @param d2 d2
* @return
*/
public static double sub(double d1, double d2) {
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.subtract(b2).doubleValue();
} /**
* 乘法运算
*
* @param d1 d1
* @param d2 d2
* @return
*/
public static double mul(double d1, double d2) {
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.multiply(b2).doubleValue();
} /**
* 除法运算
*
* @param d1 被除数
* @param d2 除数
* @param len 保留几位有效小数
* @return
*/
public static double div(double d1, double d2, int len) {
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
// BigDecimal.ROUND_HALF_UP 舍入模式
return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP).doubleValue();
} /**
* 四舍五入操作
*
* @param d 要操作的数
* @param len 保留几位有效数字
* @return
*/
public static double round(double d, int len) {
BigDecimal b1 = new BigDecimal(d);
BigDecimal b2 = new BigDecimal(1);
// 任何一个数字除以1都是原数字
// ROUND_HALF_UP是BigDecimal的一个常量,表示进行四舍五入的操作
return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP).doubleValue();
}
}

Java使用BigDecimal保留double、float运算精度、保留指定位数有效数字、四舍五入的更多相关文章

  1. Java中的浮点型(Double&Float)计算问题

    在刚刚做完的一个项目中,遇到了double型计算不精确的问题.到网上查找后,问题得到解决.经验共享,在这里总结一下. Java中的浮点数类型float和double不能够进行精确运算.这个问题有时候非 ...

  2. double float的精度问题

    三部曲 1: #include <iostream> #include <stdio.h> #include <string.h> using namespace ...

  3. java.math.BigDecimal转换double double转换java.math.BigDecimal

    有方法 java.math.BigDecimal.doubleValue() BigDecimal a = new BigDecimal(1000);return a.doubleValue(); p ...

  4. js float运算精度问题

    先放个前辈的文章:JavaScript数字精度丢失问题总结 今天遇到了19.99*100的问题,答案不等于1999,因为在javascript中浮点数的计算是以2进制计算的.自己写了一波解决方法(不能 ...

  5. java.math.BigDecimal保留两位小数,保留小数,精确位数

    http://blog.csdn.net/yuhua3272004/article/details/3075436 使用java.math.BigDecimal工具类实现   java保留两位小数问题 ...

  6. Java浮点数float,bigdecimal和double精确计算的精度误差问题总结

    (转)Java浮点数float,bigdecimal和double精确计算的精度误差问题总结 1.float整数计算误差 案例:会员积分字段采用float类型,导致计算会员积分时,7位整数的数据计算结 ...

  7. java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定

    一. 计算机的小数计算一定范围内精确,超过范围只能取近似值: 计算机存储的浮点数受存储bit位数影响,只能保证一定范围内精准,超过bit范围的只能取近似值. java中各类型的精度范围参见:http: ...

  8. 关于java中Double类型的运算精度问题

    标题     在Java中实现浮点数的精确计算    AYellow(原作) 修改    关键字     Java 浮点数 精确计算   问题的提出:如果我们编译运行下面这个程序会看到什么?publi ...

  9. 关于java中Double类型的运算精度问题(转)

    Java Java double:浮点数:精确计算  public class Test{    public static void main(String args[]){        Syst ...

随机推荐

  1. [LeetCode] Longest Uncommon Subsequence II 最长非共同子序列之二

    Given a list of strings, you need to find the longest uncommon subsequence among them. The longest u ...

  2. hive中No space left on device问题或者Java HotSpot(TM)64-Bit Server VM warning:Insufficient space for shared memory

  3. [Ubuntu 16.04 LTS ]屏幕分辨率 Unknown display

    新装完Ubuntu 16.04 LTS 通过System settings-->Displays 设置屏幕分辨率 显示"Unknown display",选择后无反应,并且屏 ...

  4. HttpClient入门二

    通过上一节我们已经可以实现对一个网站源码的抓取. 但是,有一些网站,在爬取的时候会出现如下的错误: HTTP/1.1 503 Service Unavailable <!DOCTYPE html ...

  5. [HEOI2014]大工程

    题目描述 国家有一个大工程,要给一个非常大的交通网络里建一些新的通道. 我们这个国家位置非常特殊,可以看成是一个单位边权的树,城市位于顶点上. 在 2 个国家 a,b 之间建一条新通道需要的代价为树上 ...

  6. ●Joyoi 收集邮票

    题链: http://www.joyoi.cn/problem/tyvj-2325题解.1: 期望dp,(平方的期望不等于期望的平方...) 在这个题上坑了好久,也算是对期望的理解又深了一些. 很好的 ...

  7. ●BZOJ 1272 [BeiJingWc2008]Gate Of Babylon

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1272 题解: 容斥,Lucas定理本题的容斥考虑类似 [BZOJ 1042 [HAOI200 ...

  8. WebStorm配置node.js调试

    最近因为工作关系,一直在做node.js的开发,学习了koa框架,orm框架sequelize,以及swagger文档的配置.但是,最近因为swagger文档使用了es6的修饰器那么个东西(在java ...

  9. python2.7练习小例子(三)

        3):题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?     程序分析:假设该数为 x.1.则:x + 100 = n2, x + 100 + ...

  10. Jenkins简明入门(一) -- 安装

    如今Jenkins官网的Guide里使用了Docker,网上很多Jenkins入门教程都已过时了,所以写这一篇入门教程. 官网的Guide Link是:https://jenkins.io/doc/p ...