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. LeetCode: Word Break II 解题报告

    Word Break II Given a string s and a dictionary of words dict, add spaces in s to construct a senten ...

  2. 【Java】Collection与Map接口总结

    Collection     -----List                -----LinkedList    非同步                 ----ArrayList      非同 ...

  3. Android开发系列(十七):读取assets文件夹下的数据库文件

    在做Android应用的时候,不可避免要用到数据库.可是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客攻克了我前面博客中 ...

  4. 未能加载文件或程序集Office,Version=11.0.0.0

    关于"未能加载文件或程序集“Office, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”或它的某一个 ...

  5. invalid conversion from 'void* (*)()' to 'void* (*)(void*)'

    void *thread1() ], NULL, thread1, NULL)) != ) 提示:invalid conversion from 'void* (*)()' to 'void* (*) ...

  6. TCPdump抓包命令详解

    http://starsliao.blog.163.com/blog/static/89048201062333032563/ TCPdump抓包命令 tcpdump是一个用于截取网络分组,并输出分组 ...

  7. [转]RabbitMQ,ActiveMQ,ZeroMQ,Kafka之间的比较与资料汇总

    MQ框架非常之多,比较流行的有RabbitMq.ActiveMq.ZeroMq.kafka.这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求.下面我列出这些MQ之间的对比数据和资料. 第一部 ...

  8. 事件总线demo

    经过几天的努力拜读大牛高手文章,终于对事件总线有所了解,特此记录下来,以免忘记 1.定义相关的接口: A  事件接口 public interface IDomainEvent { DateTime ...

  9. [HTML] 使用size和maxlength分别控制文本框宽度和输入字符数的限制

    ① size一般可以直观的看到,就是文本框的宽度,只能决定文本框的宽度,也就是可以看到的字符的个数. 如:size="5"  这意味着如果输入  我的国家是北京 那么只能看见  我 ...

  10. zebra/quagga

    参考:http://blog.chinaunix.net/uid-25513153-id-212328.html 一.zebra安装 .编译安装 vim ./lib/zebra.h + 增加: #if ...