前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

java.math.BigDecimal。BigDecimal一共有4个够造方法,让我先来看看其中的两种用法:

第一种:BigDecimal(double val)
Translates a double into a BigDecimal.

第二种:BigDecimal(String val)
Translates the String repre sentation of a BigDecimal into a BigDecimal.

使用BigDecimal要用String来够造,要做一个加法运算,需要先将两个浮点数转为String,然后够造成BigDecimal,在其中一个上调用add方法,传入另一个作为参数,然后把运算的结果(BigDecimal)再转换为浮点数。

public static double add(double v1,double v2)
public static double sub(double v1,double v2)
public static double mul(double v1,double v2)
public static double div(double v1,double v2)
public static double div(double v1,double v2,int scale)public static double round(double v,int scale)

import java.math.BigDecimal;   /**
* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精
* 确的浮点数运算,包括加减乘除和四舍五入。
*/  public class Arith{ //默认除法运算精度   private static final int DEF_DIV_SCALE = 10; //这个类不能实例化   private Arith(){
}  /**
* 提供精确的加法运算。
* @param v1 被加数
* @param v2 加数
* @return 两个参数的和
*/
public static double add(double v1,double v2){   BigDecimal b1 = new BigDecimal(Double.toString(v1));   BigDecimal b2 = new BigDecimal(Double.toString(v2));   return b1.add(b2).doubleValue();
} /**
* 提供精确的减法运算。
* @param v1 被减数
* @param v2 减数
* @return 两个参数的差
*/
public static double sub(double v1,double v2){   BigDecimal b1 = new BigDecimal(Double.toString(v1));   BigDecimal b2 = new BigDecimal(Double.toString(v2));   return b1.subtract(b2).doubleValue();
}  /**
* 提供精确的乘法运算。
* @param v1 被乘数
* @param v2 乘数
* @return 两个参数的积
*/
public static double mul(double v1,double v2){   BigDecimal b1 = new BigDecimal(Double.toString(v1));   BigDecimal b2 = new BigDecimal(Double.toString(v2));   return b1.multiply(b2).doubleValue();
}   /**
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
* 小数点以后10位,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @return 两个参数的商
*/
public static double div(double v1,double v2){   return div(v1,v2,DEF_DIV_SCALE);
}   /**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static double div(double v1,double v2,int scale){   if(scale<0){   throw new IllegalArgumentException(   "The scale must be a positive integer or zero");   }  BigDecimal b1 = new BigDecimal(Double.toString(v1));   BigDecimal b2 = new BigDecimal(Double.toString(v2));   return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}  /**
* 提供精确的小数位四舍五入处理。
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static double round(double v,int scale){   if(scale<0){                      throw new IllegalArgumentException("The scale must be a positive integer or zero");                  }   BigDecimal b = new BigDecimal(Double.toString(v));   BigDecimal one = new BigDecimal("1");   return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
} }; 

见:http://blog.csdn.net/huiwenjie168/article/details/6998140

BigDecimal 加减乘除运算相关推荐

  1. java中Bigdecimal加减乘除运算

    在java中的Bigdecimal类型的数据进行加减乘除运算的时候要调用以下方法: 加法:add 减法:subtract 乘法:multiply 除法:divide 例如: BigDecimal i ...

  2. BigDecimal加减乘除运算

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

  3. 详解BigDecimal及其加减乘除运算

    目录 一.BigDecimal概述 二.构造函数详解 1.BigDecimal(int val) 2.BigDecimal(int val, MathContext mc) MathContext 3 ...

  4. BigDecimal加减乘除次方运算及比较大小

    BigDecimal需要进行初始化,这里我对比两种初始化值的结果 BigDecimal big1 = new BigDecimal(0.05);BigDecimal big2 = new BigDec ...

  5. java float 加法_JAVA 实现精确的加减乘除运算

    JAVA在加减乘除运算时易发生精度丢失,达不到我们想要的计算结果:为了能够精确表示.计算浮点数,JAVA提供了BigDecimal类,可以以BigDecimal为基础定义一个Arith工具类,代码如下 ...

  6. bigdicmal除法精度设置_Java BigDecimal浮点数运算--如何保证运算精度不溢出

    加减乘除四则运算是高级程序设计语言(不论机器语言.汇编还是其他高级语言)最基础的部分,Java作为最流行的软件开发语言之一,涉及四则运算的程序代码和功能业务随处可见.在笔者从事的基于Java语言银行. ...

  7. JAVA 实现精确的加减乘除运算

    从上面代码的运行结果看出:JAVA在加减乘除运算时易发生精度丢失,达不到我们想要的计算结果:为了能够精确表示.计算浮点数,JAVA提供了BigDecimal类,可以以BigDecimal为基础定义一个 ...

  8. BigDecimal精确运算

    1.为什么要使用BigDecimal类? 因为普通的加减乘除运算会存在精度缺失的问题,而使用BigDecimal这个类可以很好的解决这个问题,所以才会使用. 2.API: 计算实例: 普通的加减乘除运 ...

  9. BigDecimal加减乘除及setScale的用法小结

    Bigdecimal初始化: BigDecimal num = new BigDecimal(2.225667);//这种写法不允许,会造成精度损失. BigDecimal num = new Big ...

最新文章

  1. 如何测量程序运行时间?
  2. 没事写着玩 系列之 JQ连连看(很丑陋,很初级)
  3. TestCase / test plan / test case
  4. 微软在 Build 2020 上“展示”新版 Edge for Linux
  5. DropDownList第一个默认值
  6. 使用HTML5的语义标签
  7. 【转】如何学会独立思考?
  8. 快速学习django
  9. kaggle项目:基于随机森林模型的心脏病人预测分类
  10. 单片机原理与接口技术试题
  11. Objective-C JSON字符串解析
  12. python中gm11_python GM11
  13. air应用接入移动mm弱联网平台
  14. Unity接口的使用
  15. 集合多种功能的转录调控数据库:hTFtarget,介绍及使用教程
  16. sinr是什么意思_信噪比有负的吗?表示什么意思?
  17. 液晶屏ESD防护解决方案
  18. QTableView添加复选框
  19. Elasticsearch一网打通
  20. 通过ZPL指令调用zebra打印机打印面单(java版)

热门文章

  1. 【PAT - 甲级1020】Tree Traversals (25分)(树的遍历,给定中序后序,求层次遍历)
  2. 【CodeForces - 777C】Alyona and Spreadsheet(思维,前缀和)
  3. 【2018icpc宁夏邀请赛现场赛】【Gym - 102222A】Maximum Element In A Stack(动态的栈中查找最大元素)
  4. 【51Nod - 1106 】质数检测 (水题,数论)
  5. Java基础部分快速复习(以前复习的时候放在自己的新浪博客上)
  6. java 自动启动监听_Spring Boot 启动事件和监听器,太强大了!
  7. 打印心形c语言,C语言打印心形
  8. mysql居左查询abcd_数据库--查询语句
  9. list.size为1但是内容为null
  10. 根据输入的出生日期计算到今天之间的天数