BigDecimal类的使用

在使用float和double的时候会发生精度丢失,而BigDecimal类就是为了处理精度的问题。

BigDecima类的构造方法有BigDecimal(double avl)这个构造方法不推荐,同样会造成精度丢失,可以使用

BigDecimal(String val)。

下面测试一下BigDecimal的用法

  1. import java.math.BigDecimal;
  2. public class Test {
  3. public static void main(String[] args) throws Exception
  4. {
  5. BigDecimal b1=new BigDecimal("0.43848484");
  6. BigDecimal b2=new BigDecimal("0.05");
  7. BigDecimal b3=null;
  8. b3=b1.add(b2);
  9. System.out.println(b3);
  10. b3=b1.subtract(b2);
  11. System.out.println(b3);
  12. b3=b1.multiply(b2);
  13. System.out.println(b3);
  14. b3=b1.divide(b2);
  15. System.out.println(b3);
  16. b3=b1.pow(2);
  17. System.out.println(b3);
  18. }
  19. }

输出结果

  1. 0.48848484
  2. 0.38848484
  3. 0.0219242420
  4. 8.7696968
  5. 0.1922689549098256

版权声明:本文为博主http://www.zuiniusn.com原创文章,未经博主允许不得转载。

时间: 2024-11-04 08:23:15

BigDecimal类的使用的相关文章

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之BigDecimal类

1.BigDecimal类概述及其构造方法 由于在运算的时候,float类型和double类型很容易丢失进度,所以,为了能够精确的表示.计算浮点数,java提供了BigDecimal类 BigDecimal类是不可变得.任意精度的有符号是进制数 2.构造方法及成员方法 package com; import java.math.BigDecimal; /**  * BigDecimal类  * 由于在运算的时候,float类型和double类型很容易丢失精度.所以,为了能精确的表示.计算浮点数.

BigDecimal类

为了能精确表示,计算浮点数,java提供了BigDecimal类,该类提供了大量的构造器用于创建BigDecimal对象,包括 把所有的基本数值型变量转换成一个BigDecimal对象,也包括利用数字字符串,数字字符数组来创建BigDecimal对象 BigDecimal类提供了add()方法,subtract(),multiply(),divide(),pow()方法对精确浮点数进行常规算术运算 public class BigDecimalTest{ public static void m

用BigDecimal类实现Fibonacci算法

Fibonacci(N)=Fibonacii(N-1)+Fibonacci(N-2) 其中 Fibonacci(0)=0;Fibonacci(1)=1 用循环或则递归实现Fibonacci算法很简单,这里就不说了,如果要用公式实现的话,需要进行开根号和幂运算,普通的long型号只能精确到小数点之后的16位,这就意味着当N很大的时候由于小数位overflow无法进行精确运算,本人测试当N大于92时候因为数据溢出的原因就与实际结果不一样了,如果小数点后面不是精确16位,而是自己设定的话,那么运算结果

Java复习-Bigdecimal类

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

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

BigDecimal类的加减乘除

BigDecimal类的加减乘除 转自:http://blog.sina.com.cn/s/blog_6a0cd5e501011soa.html BigDecimal类型(+ - * /)所用的属性 11.10 BigDecimal类 对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作.BigDecimal类的常用方法如表11-15所示. 表11-15 BigDec

Java API —— BigDecimal类

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

BigIntager类和BigDecimal类

BigInteger类 BigInteger:可以让超过Integer范围内的数据进行运算 构造方法:      BigInteger(String val) 代码示例:BigInteger bi = new BigInteger("2147483648"); 成员方法: (1)public BigInteger add(BigInteger val):加     (2)public BigInteger subtract(BigInteger val):减     (3)public

java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定

一. 计算机的小数计算一定范围内精确,超过范围只能取近似值: 计算机存储的浮点数受存储bit位数影响,只能保证一定范围内精准,超过bit范围的只能取近似值. java中各类型的精度范围参见:http://blog.csdn.net/longshenlmj/article/details/47616481 编程时注意: doulbe类型的数,不能用等号判定是否相等(或者是一定范围内可以).因为两次同样的计算(除法)结果可能出现小数部分不同.甚至极端的时候,初始化两个小数时,都可能不相等(用数值和字