Java基础知识强化89:BigDecimal类之BigDecimal类引入和概述 以及 BigDecimal的使用(加减乘除)

1. BigDecimal类概述:

由于在运算的时候,float类型和double很容易丢失精度。所以为了能够精确的表达、计算浮点数,Java提供了BigDecimal。

BigDecimal:不可变、任意精度的有符号十进制数。

2. BigDecimal构造方法

1 public BigDecimal(String val)

3. BigDecimal的使用(加减乘除)

1 public BigDecimal  add(BigDecimal augend):加
2 public BigDecimal  subtract(BigDecimal subtrahend):减
3 public BigDecimal  multiply(BigDecimal  divisor):乘
4 public BigDecimal  divide(BigDecimal divisor):除
5 public BigDecimal  divide(BigDecimal divisor, int scale, int roundingMode):商,几位小数(scale),如何舍取(roundingMode)

代码演示:

 1 package cn.itcast_02;
 2
 3 import java.math.BigDecimal;
 4
 5 /*
 6  * 构造方法:
 7  *         public BigDecimal(String val)
 8  *
 9  * public BigDecimal add(BigDecimal augend)
10  * public BigDecimal subtract(BigDecimal subtrahend)
11  * public BigDecimal multiply(BigDecimal multiplicand)
12  * public BigDecimal divide(BigDecimal divisor)
13  * public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode):商,几位小数,如何舍取
14  */
15 public class BigDecimalDemo {
16     public static void main(String[] args) {
17         // System.out.println(0.09 + 0.01);
18         // System.out.println(1.0 - 0.32);
19         // System.out.println(1.015 * 100);
20         // System.out.println(1.301 / 100);
21
22         BigDecimal bd1 = new BigDecimal("0.09");
23         BigDecimal bd2 = new BigDecimal("0.01");
24         System.out.println("add:" + bd1.add(bd2));
25         System.out.println("-------------------");
26
27         BigDecimal bd3 = new BigDecimal("1.0");
28         BigDecimal bd4 = new BigDecimal("0.32");
29         System.out.println("subtract:" + bd3.subtract(bd4));
30         System.out.println("-------------------");
31
32         BigDecimal bd5 = new BigDecimal("1.015");
33         BigDecimal bd6 = new BigDecimal("100");
34         System.out.println("multiply:" + bd5.multiply(bd6));
35         System.out.println("-------------------");
36
37         BigDecimal bd7 = new BigDecimal("1.301");
38         BigDecimal bd8 = new BigDecimal("100");
39         System.out.println("divide:" + bd7.divide(bd8));
40         System.out.println("divide:"
41                 + bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));
42         System.out.println("divide:"
43                 + bd7.divide(bd8, 8, BigDecimal.ROUND_HALF_UP));
44     }
45 }

运行效果:

时间: 2024-10-11 22:54:53

Java基础知识强化89:BigDecimal类之BigDecimal类引入和概述 以及 BigDecimal的使用(加减乘除)的相关文章

Java基础知识强化65:基本类型包装类的引入

1. 基本类型包装类概述 (1)将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据. (2)常用的操作的之一:用于基本数据类型与字符串之间的转换. (3)基本类型和包装类的对应 • Byte.Short.Integer.Long.Float.Double.Character.Boolean 为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型--------包装类类型. 2. 案例引入: 1 package cn.itcast

Java基础知识强化之IO流笔记66:Properties的概述 和 使用(作为Map集合使用)

1. Properties的概述  Properties:属性集合类.是一个可以和IO流相结合使用的集合类.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. Properties是Hashtable的子类,说明是一个Map集合. 2. Properties作为Map集合使用 1 package cn.itcast_08; 2 3 import java.util.Properties; 4 import java.util.Set; 5 6 /* 7 *

Java基础知识强化26:Object类之Object类的概述

1.Object类 类Object是类层次结构的根类,每个类都使用 Object作为超类.所有对象(包括数组)都实现这个类的方法 每个类直接或者间接继承自Object类 2.Object类无参构造: public  Object() 回想面向对象中为什么说:子类的构造方法默认访问的是父类的无参构造. 答:这是因为所有类的共同父亲Object只有一个无参构造. 来自为知笔记(Wiz)

Java基础知识强化27:Object类之hashCode()方法、getClass()方法

1. Object类的hashCode()方法,如下: public  int  hashCode():返回该对象的哈希码值,这个值和地址值有关,但是不是实际地址值(哈希码值是根据实际地址值转化过来的整数值),你可以理解为地址值. 2. Object类的getClass()方法,如下: public  final  Class  getClass():返回此 Object 的运行时类(返回的类型是Class类,实际返回的是Class类的对象实体)                       Cl

Java基础知识强化(用于自我巩固)以及审查

1. Java 和 JDK 的关系 JDK(Java Development Kit)Java 开发工具包,它包括:编译器.Java 运行环境(JRE,Java Runtime Environment).JVM(Java 虚拟机)监控和诊断工具等 Java 则表示一种开发语言. 2. Java 程序是怎么执行的? 日常工作中使用的开发工具(IntelliJ IDEA 或 Eclipse 等)可以很方便的调试程序,或者是通过打包工具把项目打包成 jar 包或者 war 包,放入 Tomcat 等

Java基础知识强化之多线程笔记01:多线程基础知识(详见Android(java)笔记61~76)

1. 基础知识: Android(java)学习笔记61:多线程程序的引入    ~    Android(java)学习笔记76:多线程-定时器概述和使用 

java基础知识强化52:Java程序员面试失败的5大原因

下面是Java程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容. 1 说得太少 尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一下你曾经解决过的复杂问题”.面试官会通过你对这些技术和非技术问题的回答来评估你的激情.他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力. 所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊.如果你不能很好地说明你的经验.成就和技能可以给企业带来的价

Java基础知识强化之集合框架笔记58:Map集合之LinkedHashMap类的概述

1. LinkedHashMap类的概述 LinkedHashMap:Map接口的哈希表(保证唯一性) 和 链接(保证有序性)列表实现,具有可预知的迭代顺序. 2. 代码示例: 1 package cn.itcast_03; 2 3 import java.util.LinkedHashMap; 4 import java.util.Set; 5 6 /* 7 * LinkedHashMap:是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序. 8 * 由哈希表保证键的唯一性 9 * 由链

Java基础知识强化92:DateFormat类之DateFormat实现日期和字符串的相互转换

1. DateFormat类概述: DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间. 是抽象类,所以使用其子类SimpleDateFormat 2. SimpleDateFormat构造方法: 1 public SimpleDateFormat() 2 public SimpleDateFormat(String pattern) 3. 成员方法 1 public final String format(Date date) 2 public D