java之BigDecimal类

1.BigDecimal类概述及其构造方法

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

BigDecimal类是不可变得、任意精度的有符号是进制数

2.构造方法及成员方法

package com;

import java.math.BigDecimal;

/**
 * BigDecimal类
 *	由于在运算的时候,float类型和double类型很容易丢失精度。所以,为了能精确的表示、计算浮点数。
 *	java提供了BigDecimal类
 *	BigDecimal类是不可变的、任意精度的有符号十进制数。
 * 构造方法
 * 	public BigDecimal(String val)
 * 成员方法
 * 	public BigDecimal add(BigDecimal value)
 * 	public BigDecimal subtract(BigDecimal value)
 * 	public BigDecimal multiply(BigDecimal value)
 * 	public BigDecimal divide(BigDecimal value)
 * 	public BigDecimal divide(BigDecimal value,int scale,int roundingMode)
 */
public class BidDecimalDemo {
	public static void main(String[] args) {
		BigDecimal b1 = new BigDecimal("0.09");
		BigDecimal b2 = new BigDecimal("0.01");

		//public BigDecimal add(BigDecimal value)
		System.out.println(b1.add(b2));//0.10

		//public BigDecimal subtract(BigDecimal value)
		System.out.println(b1.subtract(b2));//0.08

		//public BigDecimal multiply(BigDecimal value)
		System.out.println(b1.multiply(b2));//0.0009

		//public BigDecimal divide(BigDecimal value)
		System.out.println(b1.divide(b2));//9

		//public BigDecimal divide(BigDecimal value,int scale,int roundingMode)
		System.out.println(b1.divide(b2, 2,BigDecimal.ROUND_HALF_UP));//9.00
	}
}
时间: 2024-12-26 17:05:51

java之BigDecimal类的相关文章

Java.math.BigDecimal类

java.math.BigDecimal 类提供用于算术,刻度操作,舍入,比较,哈希算法和格式转换操作. toString()方法提供BigDecimal的规范表示.它使用户可以完全控制舍入行为. 提供用于操作BigDecimal规模两种类型的操作: 缩放/舍入操作 小数点移动操作. 此类及其迭代器实现Comparable接口的所有可选方法. 点击链接查看更多

java.math.BigDecimal类的用法

在java中提供了大数字的操作类,即java.math.BinInteger类和java.math.BigDecimal类.这两个类用于高精度计 算,其中BigInteger类是针对大整数的处理类,而BigDecimal类则是针对大小数的处理类.下边我们介绍BigDecimal类: BigDecimal的实现利用到了BigInteger,不同的是BigDecimal加入了小数的概念.一般的float型和Double型数据只可 以用来做科学计算或者是工程计算,由于在商业计算中,要求的数字精度比较高

java.math.BigDecimal类multiply的使用

其实java的float只能用来进行科学计算或工程计算,在大多数的商业计算中,一般采用java.math.BigDecimal类来进行精确计算.在使用BigDecimal类来进行计算的时候,主要分为以下步骤:1.用float或者double变量构建BigDecimal对象.2.通过调用BigDecimal的加,减,乘,除等相应的方法进行算术运算.3.把BigDecimal对象转换成float,double,int等类型.一般来说,可以使用BigDecimal的构造方法或者静态方法的valueOf

Java复习-Bigdecimal类

因为直接引用float和double类型的数据进行算数运算的时候总是会进行精度的丢失,因此Java采用了bigdecimal类进行精度方面的运算,但是采用精度进行运算的时候,一般传入的是字符串,如果硬要传入double类型的数据的话,采用bigdecimal类提供的方法 产生了精度的丢失, 如果使用了bigdecimal之后,采用的是新建对象,不是以字符串的方式传入的话就会出现误差,所以一定要以字符串的方式传入进去 采用了最后一种方式以后就不会出现进度的消失了

Java API —— BigDecimal类

1.BigDecimal类概述  由于在运算的时候,float类型和double很容易丢失精度,演示案例.所以,为了能精确的表示.计算浮点数,Java提供了BigDecimal 不可变的.任意精度的有符号十进制数. 2.构造方法 public BigDecimal(String val):建议使用参数为字符串的构造方法,如果参数为double或float,还是会出现不可预知的精度问题 3.BigDecimal类成员方法 public BigDecimal add(BigDecimal augen

Java中的BigDecimal类用法介绍

Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高精度计算. 其中 BigInteger 类是针对大整数的处理类,而 BigDecimal 类则是针对大小数的处理类. BigDecimal 类的实现用到了 BigInteger类,不同的是 BigDecimal 加入了小数的概念. float和Double只能用来做科学计算或者是工程计算;在商业计算中,对数字精度要求较高,必须使用 BigIn

java.math.BigDecimal

java在运行1.0-0.8时,其结果并不是0.2,而是0.1999999999999996.这是因为 java遵守IEEE754浮点数运算(Floating-pointarithmetic)规范,使用分数与 指数来表示浮点数.例如,0.5会使用1/2来表示,0.75会使用1/2+1/4来表示, 0.875会使用1/2+1/4+1/8来表示,而0.1会使用 1/16+1/32+1/256+1/512+1/4096+1/8192+...无限循环下去,无法精确的表示, 因而造成运算上的误差. 再例如

Java BigDecimal类

1 package demo04; 2 3 import java.math.BigDecimal; 4 5 //double和float类型在运算中很容易丢失精度,造成数据的不准确性,BigDecimal类可以实现浮点数据的高精度运算 6 public class BigDecimalDemo { 7 public static void main(String[] args) { 8 BigDecimal b1 = new BigDecimal("0.09"); 9 BigDeci

Java大数处理类:BigInteger类和BigDecimal类

当我们要处理非常大的数据时,平常用的数据类型已不足以表示,在Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,这两个类在理论上只要计算机内存足够大就能够表示无线大的数.它们都在java.math.*包中,我们可以在API文档中进行查看: Java API 1.6 中文在线帮助文档 http://www.yq1012.com/api/ 实例: 1 import java.math.BigDecimal; 2 import java.math.BigInteg