1. import java.math.BigDecimal;
  2.  
  3. /**
  4. * 精确的double加减乘除运算
  5. * @author cyf
  6. *
  7. */
  8. public class DoubleUtil {
  9.  
  10. /**
  11. * 提供精确的加法运算。
  12. *
  13. * @param v1
  14. * 被加数
  15. * @param v2
  16. * 加数
  17. * @return 两个参数的和
  18. */
  19.  
  20. public static double add(double v1, double v2)
  21. {
  22. BigDecimal b1 = new BigDecimal(Double.toString(v1));
  23. BigDecimal b2 = new BigDecimal(Double.toString(v2));
  24. return b1.add(b2).doubleValue();
  25. }
  26.  
  27. /**
  28. * 提供精确的减法运算。
  29. *
  30. * @param v1
  31. * 被减数
  32. * @param v2
  33. * 减数
  34. * @return 两个参数的差
  35. */
  36.  
  37. public static double sub(double v1, double v2)
  38. {
  39. BigDecimal b1 = new BigDecimal(Double.toString(v1));
  40. BigDecimal b2 = new BigDecimal(Double.toString(v2));
  41. return b1.subtract(b2).doubleValue();
  42. }
  43.  
  44. /**
  45. * 相除
  46. */
  47.  
  48. /**
  49. * * 两个Double数相除 *
  50. *
  51. * @param v1 *
  52. * @param v2 *
  53. * @return Double
  54. */
  55. public static int div(double v1, double v2) {
  56. BigDecimal b1 = new BigDecimal(v1+"");
  57. BigDecimal b2 = new BigDecimal(v2+"");
  58. return (int)b1.divide(b2, 1, BigDecimal.ROUND_HALF_UP)
  59. .doubleValue();
  60. }
  61.  
  62. /**
  63. * 提供精确的乘法运算。
  64. * @param v1 被乘数
  65. * @param v2 乘数
  66. * @return 两个参数的积
  67. */
  68.  
  69. public static double mul(double v1,double v2){
  70. BigDecimal b1 = new BigDecimal(Double.toString(v1));
  71. BigDecimal b2 = new BigDecimal(Double.toString(v2));
  72. return b1.multiply(b2).doubleValue();
  73. }
  74.  
  75. }

备忘  有问题请大神指证

精确的double加减乘除运算工具类的更多相关文章

  1. 精度更高的double类型计算工具类(借助BigDecimal类型)

    /** * 提供精確的加法運算 * @param args */ public static double add(double v1, double v2) { BigDecimal b1 = ne ...

  2. BigDecimal工具类处理精度计算

    /** * Created by My_coder on 2017-07-27. * 加减乘除计算工具类 */ public class BigDecimalUtil { private BigDec ...

  3. 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。

    package com.minxinloan.utils; import java.math.BigDecimal; public class Arith { // 源文件Arith.java: /* ...

  4. ArithUtil工具类 : 精确计算各种运算

    package com.autoserve.mh.common.util;   import java.math.BigDecimal; import java.text.DecimalFormat; ...

  5. Java工具类(util) 之01- 数学运算工具(精确运算)

    数学运算工具(精确运算) /** * * @author maple * */ public abstract class AmountUtil { private AmountUtil() { } ...

  6. BigDecimal进行精确运算demo工具类

    package com.js.ai.modules.pointwall.interfac; import java.math.BigDecimal; public class TestDigDecim ...

  7. Java的精确整数计算-Bigdecimal学习总结和工具类

    随笔:随着最近工作需要,回首需要涉及到一些精确的数据计算,就需要用到Bigdecimal,索性就趁着闲暇之余整理收集一下关于Bigdecimal的使用方法,由于时间的原因,整理的并不是特别详细,但相信 ...

  8. java BigDecimal实现精确加减乘除运算

    java.math.BigDecimal.BigDecimal一共有4个够造方法,让我先来看看其中的两种用法: 第一种:BigDecimal(double val)Translates a doubl ...

  9. 电商网站中价格的精确计算(使用BigDecimal进行精确运算(实现加减乘除运算))

    使用BigDecimal的String的构造器.商业计算中,使用bigdecimal的String构造器,一定要用. 重要的事情说三遍: 商业计算中,使用bigdecimal的String构造器! 商 ...

随机推荐

  1. [微信小程序直播平台开发]___(一)介绍与流程

    1.一个可以忽略的前言 最近在做的一个项目,客户要做一个直播平台,主播发起视频直播,然后其他人进入房间观看这样子,跟其他直播平台不同的是,主播可以打赏观众,噗. 因为客户要做的是一个民宿的微信小程序, ...

  2. centos 增加网卡

    CentOS 6添加网卡的方法 (2013-11-26 17:19:44) 转载▼ 标签: it 分类: Linux 前段时间安装了1台XEN server虚拟机,之前只用了1个网卡,ip是10.11 ...

  3. 51nod 1443 路径和树(最短路)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1443 1443 路径和树 题目来源: CodeForces ...

  4. ubuntu16.04更新内核--使用4.6以上的内核会让用A卡的Dell电脑更快--及卸载多余内核

    tips:我自己就是Dell的A卡电脑,用16.04桌面感觉不如fedora流畅,后来手动升级到4.6.2内核,发现可以和fedora与windows一般桌面操作流畅度. 我试过了4.7的开发版内核, ...

  5. virtualbox+vagrant学习-4-Vagrantfile-5-Machine Settings

    Machine Settings 配置命名空间:config.vm config.vm的设置将修改vagrant管理的机器的配置 Available Settings可用设置 config.vm.ba ...

  6. Error: Couldn't find preset "env" relative to directory "/Users/user/ethereumjs-vm"

    运行npm run build时遇见这个问题,解决办法是安装: npm install --save-dev babel-preset-env 就解决了

  7. Python之Bottle框架使用

    本文主要包含的内容是Bottle框架介绍和安装使用. 一.Bottle框架介绍 Bottle是一个快速小巧,轻量级的 WSGI 微型 web 框架.同时Bottle也是一个简单高效的遵循WSGI的微型 ...

  8. linux 使用错误总结

    1.执行./shutdown.sh或./startup.sh命令,报错”Permission denied“(用户没有权限),执行以下语句: chmod u+x *.sh

  9. salt常用命令(一)

    查看模块包含哪些函数 salt 'node' sys.list_functions test 查看函数的用法 salt 'node' sys.doc test.echo 使用模块中的函数 salt ' ...

  10. Python学习笔记系列——读写文件以及敏感词过滤器的实现

    一.读文件 #打开文件,传入文件名和标识符,r代表读 f= open('\\Users\ZC\Desktop\zc.txt','r') #调用read方法一次性读取文件的全部内容,存入内存,用str对 ...