`
wandejun1012
  • 浏览: 2719591 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

bigdecimal 运算

    博客分类:
  • java
 
阅读更多

 

1、利用如下代码即可:

 

1 public BigDecimal add(BigDecimal value);                        //加法
2 public BigDecimal subtract(BigDecimal value);                   //减法 
3 public BigDecimal multiply(BigDecimal value);                   //乘法
4 public BigDecimal divide(BigDecimal value);                     //除法

 

 

2、在运算时,还需要注意精度。

bigDecimal有个setScale方法,比如设置成2,就比如保留2位小数.

注意到:如果一个小数用这个方法,会抛异常。因为你未指定进位。换句话说,程序不知道到底第3位是舍弃还是进位。但是整数直接调用这个方法就不会报错,因为整数无非就是加2个0而已。

 

以下是各种进位的例子:

setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4 
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍

 

下面是一些经典例子:

注释:
1:
scale指的是你小数点后的位数。比如123.456则scale就是3.
scale()就是BigDecimal类中的方法啊。
比如:BigDecimal b = new BigDecimal("123.456");
b.scale(),返回的就是3.
2:
roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段,有很多种。
比如:BigDecimal.ROUND_HALF_UP表示的就是4舍5入。
3:
pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
的意思是说:我用一个BigDecimal对象除以divisor后的结果,并且要求这个结果保留有scale个小数位,roundingMode表示的就是保留模式是什么,是四舍五入啊还是其它的,你可以自己选!

4:对于一般add、subtract、multiply方法的小数位格式化如下:

BigDecimal mData = new BigDecimal("9.655").setScale(2, BigDecimal.ROUND_HALF_UP);
        System.out.println("mData=" + mData);
 
5、对于BigDecimal有个隐形的坑,就是它setScale后返回的对象和原来的对象不是同一个对象。
就像a.replace()返回的a不一样很相象。
见如下demo
BigDecimal bigDecimal=new BigDecimal(3.33333333);
		bigDecimal.setScale(2);
		BigDecimal bigDecimal2=bigDecimal.setScale(2,BigDecimal.ROUND_HALF_UP);
		System.out.println(bigDecimal);
		System.out.println(bigDecimal.scale());
		if(bigDecimal == bigDecimal2){
			System.out.println("2对象相等");
		}else{
			System.out.println("2对象不相等");
		}
 
 
----结果:----- mData=9.66

refurl:http://blog.csdn.net/ahwr24/article/details/7048724

 

 

 

 

 

 

分享到:
评论

相关推荐

    BigDecimal运算封装.txt

    BigDecimal运算封装,里面封装了Integer和BigDecimal的"加减乘除法运算封装

    BigDecimal运算

    BigDecimal运算Jar包。支持sin、cos、tan、asin、acos、atan、pow、sqrt、cbrt、root、log10、log、ln、exp、sinh、cosh、tanh、asinh、acosh、atanh、deg、rad

    高精度JSBigDecimal运算

    `bigdecimal3.js`可能是一个实现了BigDecimal运算的JavaScript库,它可以提供比原生JavaScript更精确的十进制数运算。这个库可能包括了加法、减法、乘法、除法以及比较、取模等多种操作,确保在执行这些操作时不会...

    java BigDecimal操作

    `MathExtend.java`这个文件可能是包含了一些扩展的数学操作,比如自定义的舍入方法或者更复杂的BigDecimal运算。在实际开发中,我们可能需要编写这样的辅助类来实现特定的业务需求。 总的来说,理解和熟练运用...

    MyEditTextApplication输入框BigDecimal计算价格

    6. **性能优化**:由于BigDecimal运算相对于基本类型来说较慢,因此在处理大量数据或者频繁计算时,要注意优化代码,避免不必要的计算和内存开销。 7. **UI更新**:在更新EditText中的显示时,应该在UI线程进行,...

    BigDecimal 加减乘除运算

    Java中BigInteger的数学运算,BigDecimal 加减乘除运算,Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大...

    BigDecimal基本运算介绍

    `BigDecimal` 的运算方式与基本数据类型有所不同,因为它涉及到的对象操作而非简单的数值计算。 ### 1. 创建 `BigDecimal` 对象 `BigDecimal` 构造器通常接收一个字符串参数,该字符串表示要转换为 `BigDecimal` ...

    javascrpt BigDecimal 大数运算类 完整版(包括例子)

    其中BigDecimal-all-last.min.js大小为:26KB GZIP压缩后7K,完全可以用于实际生产过程中。 简单例子: var a = new BigDecimal("1500"); var b = new BigDecimal("33"); alert(a.multiply(b)); alert&#...

    Java中BigDecimal的基本运算(详解)

    Java中BigDecimal的基本运算详解 Java中的BigDecimal是一种高精度的数据类型,它可以用来表示非常大的整数和小数,提供了丰富的数学运算功能。下面我们将对Java中BigDecimal的基本运算进行详细的介绍。 构造方法 ...

    javascript BigDecimal 大数运算类 单文件浓缩版

    本版中只有一个用于生产环境的文件:BigDecimal-all-last.min.js,大小为26K,如果WEB服务器打开GZIP压缩,可以减小至7K,如需完整版本请移步至:http://download.csdn.net/detail/aquaqu2009/4575230 简单用法: ...

    BigDecimal工具类.docx

    BigDecimal工具类是Java中用于高精确处理常用数学运算的工具类。该工具类提供了多种精确的数学运算方法,包括加法、减法、乘法和除法等。 在BigDecimal工具类中,我们可以看到多个重载的方法,例如add方法和sub方法...

    BigDecimal类

    BigDecimal 类是 Java 中的一种数值类型,主要用于处理超过 16 位有效数字的数值运算。该类提供了多种构造器和方法,用于创建和操作 BigDecimal 对象。 构造器 BigDecimal 类提供了四种构造器,用于创建不同的 ...

    Java使用BigDecimal进行运算封装的实际案例

    "Java使用BigDecimal进行运算封装的实际案例" 今天,我们将讨论Java中使用BigDecimal进行运算封装的实际案例。BigDecimal是Java中一个用于处理精确数字计算的类,它提供了多种数学运算方法,如加法、减法、乘法、除...

    BigDecimal.js.zip

    这个库提供了一个名为`BigDecimal`的数据类型,用于实现大数运算,确保结果的精度不受损失。 "BigDecimal.js.zip"是一个压缩包,其中包含了"BigDecimal-all-last.min.js"文件。这个文件是BigDecimal.js库的最小化...

    javascript版BigDecimal类库

    为了解决这个问题,开发者们引入了`BigDecimal`类库的概念,它在Java中被广泛使用,用于进行高精度的算术运算。本文将详细介绍JavaScript版的`BigDecimal`类库,以及如何在JavaScript环境中实现精确计算。 ...

    BigDecimal使用

    3. 精确的加法运算:使用 BigDecimal 的 add 方法可以进行精确的加法运算,例如将两个 BigDecimal 对象相加并返回结果。 4. 精确的减法运算:使用 BigDecimal 的 subtract 方法可以进行精确的减法运算,例如将两个 ...

    BigDecimal加减乘除计算

    BigDecimal 类在 Java 中被设计用来处理高精度的浮点数运算,主要应用于财务、金融等领域,因为这些场景中对精度要求非常高。BigDecimal 提供了加法(add())、减法(subtract())、乘法(multiply())和除法...

    javascrpt BigDecimal MathContext 大数运算类 完整版

    build/BigDecimal-all-last.js build/BigDecimal-all-last.min.js build/preserved_multiline_comment_begin.closure.js build/preserved_multiline_comment_begin.yui.js build/preserved_mult

    BigDecimal向Double转换

    在Java编程语言中,BigDecimal是一种用于处理高精度数值的数据类型,尤其适用于金融计算等领域,因为它可以提供不受限的小数位数精度以及精确的数学运算能力。然而,在某些情况下,我们可能需要将BigDecimal类型的值...

    bigdecimal

    本文将深入探讨 `BigDecimal` 类的基本概念、特点以及如何使用它来进行精确的算术运算。 #### 一、基本概念 `BigDecimal` 类提供了一种可以进行任意精度定点数算术的方法。这意味着它可以存储一个数值的任意小数...

Global site tag (gtag.js) - Google Analytics