BigDecimal类

对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。BigDecimal类的常用方法如表11-15所示。

BigDecimal类的常用方法

序号

方    法

类型

描    述

1

public BigDecimal(double val)

构造

将double表示形式转换

为BigDecimal

2

public BigDecimal(int val)

构造

将int表示形式转换为

BigDecimal

3

public BigDecimal(String val)

构造

将字符串表示

形式转换为BigDecimal

4

public BigDecimal add(BigDecimal augend)

普通

加法

5

public BigDecimal subtract(BigDecimal
subtrahend)

普通

减法

6

public BigDecimal multiply(BigDecimal
multiplicand)

普通

乘法

7

public BigDecimal divide(BigDecimal
divisor)

普通

除法

进行四舍五入的四则运算demo.

package test;

import
java.math.BigDecimal;

class MyMathTest {

public static double
add(double d1,
double d2)

{        //
进行加法运算

BigDecimal b1 = new
BigDecimal(d1);

BigDecimal b2 = new
BigDecimal(d2);

return
b1.add(b2).doubleValue();

}

public static double
sub(double d1,
double d2)

{        //
进行减法运算

BigDecimal b1 = new
BigDecimal(d1);

BigDecimal b2 = new
BigDecimal(d2);

return
b1.subtract(b2).doubleValue();

}

public static double
mul(double d1,
double d2)

{        //
进行乘法运算

BigDecimal b1 = new
BigDecimal(d1);

BigDecimal b2 = new
BigDecimal(d2);

return
b1.multiply(b2).doubleValue();

}

public static double
div(double d1,

double
d2,int len)
{// 进行除法运算

BigDecimal b1 = new
BigDecimal(d1);

BigDecimal b2 = new
BigDecimal(d2);

return
b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue();

}

public static double
round(double d,int len)
{     //
进行四舍五入操作

BigDecimal b1 = new
BigDecimal(d);

BigDecimal b2 = new
BigDecimal();

//
任何一个数字除以1都是原数字

//
ROUND_HALF_UP是BigDecimal的一个常量,

      • 表示进行四舍五入的操作
  • return
    b1.divide(b2, len,BigDecimal.ROUND_HALF_UP).doubleValue();
  • }
  • }
  • public class
    BigDecimalDemo01 {
  • public static void main(String[]
    args) {
  • System.out.println());
  • System.out.println());
  • System.out.println());
  • System.out.println());
  • }

}

BigDecimal类(精度计算类)的加减乘除的更多相关文章

  1. 14-03 java BigInteger类,BigDecimal类,Date类,DateFormat类,Calendar类

    BigInteger类 发 package cn.itcast_01; import java.math.BigInteger; /* * BigInteger:可以让超过Integer范围内的数据进 ...

  2. 正则表达式、Calendar类、SimpleDateFormat类、Date类、BigDecimal类、BigInteger类、System类、Random类、Math类(Java基础知识十四)

    1.正则表达式的概述和简单使用 * A:正则表达式(一个字符串,是规则)     * 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. * B: ...

  3. 处理数字的类 —— Math类 、 Random类 、 BigDecimal类 与 BigInteger类

    在我们学习C语言时,我们处理数据时要调用很多函数,那么,Java也有很多的方法可以来处理数值的类. 那么,在本篇博文中,本人就来讲解三个用于处理数值的类 -- Math类 . Random类 与 Bi ...

  4. Math类、Random类、System类、BigInteger类、BigDecimal类、Date类、SimpleDateFormat、Calendar类

    Math类* A:Math类概述 * Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. * B:成员方法 * public static int abs(int a)  ...

  5. c++面试常用知识(sizeof计算类的大小,虚拟继承,重载,隐藏,覆盖)

    一. sizeof计算结构体 注:本机机器字长为64位 1.最普通的类和普通的继承 #include<iostream> using namespace std; class Parent ...

  6. python之Counter类:计算序列中出现次数最多的元素

    Counter类:计算序列中出现次数最多的元素 from collections import Counter c = Counter('abcdefaddffccef') print('完整的Cou ...

  7. 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数。定义 Gymnastics 类和 School 类,它们都是 ComputerAverage 的子类。Gymnastics 类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分;School 中计算平均分的方法是所有科目的分数之和除以总科目数。 要求:定义ComputerAv

    题目: 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数. 定义 Gymnastics 类和 School 类,它们都是 ComputerAverag ...

  8. ArcGIS 地类净面积计算工具

    地类净面积计算工具可以自己定义图层.字段.地类代码计算任意图层的椭球面积.线状地物扣除.零星扣除和其他扣除,计算地类净面积计算:可以用于二调数据图斑地类.规划地块和基本农田等等需要计算净面积的都可以. ...

  9. 求计算两个时间的差(DateTime类和TimeSpan类)

    日期时间数据是项目设计过程中经常需要处理的信息,C#提供了DateTime类和TimeSpan类来处理日期时间数据.下面介绍说明Datetime类和TimeSpan类的使用 //初始化DateTime ...

随机推荐

  1. Oracle_字符集问题(数据库与客户端字符集关联关系)

    http://blog.163.com/jiankun_liu/blog/static/1863927762013698175289 ********************************* ...

  2. Hbase1.1.x Java版之批量查删操作

    import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.*; import org.apache.had ...

  3. jfinal控制器添加多个拦截器

    @Before({a_Interecptor.class,b_Interecptor.class}) public class aaController(){ } 参考:http://www.cnbl ...

  4. Sketch Up常见问题

    墙上开门洞用铅笔在墙上画好矩形(2m*1m)->用推拉(P)工具双击左键

  5. 设计和开发ETL系统(一)——ETL过程综述

    在这部分将按照设计和实现ETL系统的流程展开,将上一个部分的那些子系统按照提取数据.清洗和一致化.向呈现服务器提交以及管理ETL环境等四个方面进行了分类.(是不是说对ETL主要就是掌握这四个方面的内容 ...

  6. WIFEXITED/WEXITSTATUS/WIFSIGNALED

    WIFEXITED/WEXITSTATUS/WIFSIGNALED If the exit status value (*note Program Termination::) of the chil ...

  7. oozie中调度mapreduce

    mapreduce可以直接对hdfs进行清洗和计算,这里介绍oozie中如何调度使用. 操作步骤如下: 1. 写一个mapper和reduce类,并且打包成jar包 2. 在workflow中引用ma ...

  8. JVM监控工具用法指导

    JVM监控工具用法指导 2010-09-27 15:39 dolphin-ygj javaeye.com 字号:T | T 通过JVM监控工具的使用可以及时发现问题,剔除安全隐患,这里向大家描述一下常 ...

  9. linux 批量创建用户获取8位随机密码

    #创建账号  分组不分组只有一列useradd无法添加三个账号 添加账号  获取密码  执行最后一句echo stu{4..6}|xargs -n 1|sed -r 's#(.*)#useradd \ ...

  10. volatile关键字的介绍和使用

    关键字volatile的主要作用是使变量在过个线程中可见 1.假设volatile不存在我们将会面对的问题 public class PrintString implements Runnable { ...