`
xcy13638760
  • 浏览: 52690 次
社区版块
存档分类
最新评论

BigDecimal类的加减乘除(

 
阅读更多
BigDecimal类型(+ - * /)所用的属性

11.10 BigDecimal类

对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。BigDecimal类的常用方法如表11-15所示。

表11-15 BigDecimal类的常用方法

序号

<wbr><wbr><wbr></wbr></wbr></wbr>

类型

<wbr><wbr><wbr></wbr></wbr></wbr>

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)

普通

除法

范例:进行四舍五入的四则运算

  1. package org.lxh.demo11.numberdemo;
  2. import java.math.BigDecimal;
  3. class MyMath {
  4. <wbr><wbr><wbr><wbr><strong><span style="color:#006699">public</span> <span style="color:#006699"> static</span> <span style="color:#006699">double</span></strong> add(<strong><span style="color:#006699">double</span></strong> d1, <strong><span style="color:#006699">double</span></strong> d2)<br> { <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span style="color:#008200">// 进行加法运算</span> </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  5. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>BigDecimal b1 = <strong><span style="color:#006699">new</span></strong> BigDecimal(d1); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  6. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>BigDecimal b2 = <strong><span style="color:#006699">new</span></strong> BigDecimal(d2); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  7. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><strong><span style="color:#006699">return</span></strong> b1.add(b2).doubleValue(); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  8. <wbr><wbr><wbr><wbr>} </wbr></wbr></wbr></wbr>
  9. <wbr><wbr><wbr><wbr><strong><span style="color:#006699">public</span> <span style="color:#006699"> static</span> <span style="color:#006699">double</span></strong> sub(<strong><span style="color:#006699">double</span></strong> d1, <strong><span style="color:#006699">double</span></strong> d2)<br> { <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span style="color:#008200">// 进行减法运算</span> </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  10. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>BigDecimal b1 = <strong><span style="color:#006699">new</span></strong> BigDecimal(d1); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  11. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>BigDecimal b2 = <strong><span style="color:#006699">new</span></strong> BigDecimal(d2); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  12. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><strong><span style="color:#006699">return</span></strong> b1.subtract(b2).doubleValue(); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  13. <wbr><wbr><wbr><wbr>} </wbr></wbr></wbr></wbr>
  14. <wbr><wbr><wbr><wbr><strong><span style="color:#006699">public</span> <span style="color:#006699"> static</span> <span style="color:#006699">double</span></strong> mul(<strong><span style="color:#006699">double</span></strong> d1, <strong><span style="color:#006699">double</span></strong> d2)<br> { <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span style="color:#008200">// 进行乘法运算</span> </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  15. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>BigDecimal b1 = <strong><span style="color:#006699">new</span></strong> BigDecimal(d1); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  16. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>BigDecimal b2 = <strong><span style="color:#006699">new</span></strong> BigDecimal(d2); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  17. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><strong><span style="color:#006699">return</span></strong> b1.multiply(b2).doubleValue(); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  18. <wbr><wbr><wbr><wbr>} </wbr></wbr></wbr></wbr>
  19. <wbr><wbr><wbr><wbr><strong><span style="color:#006699">public</span> <span style="color:#006699"> static</span> <span style="color:#006699">double</span></strong> div(<strong><span style="color:#006699">double</span></strong> d1,<br><strong><span style="color:#006699">double</span></strong> d2,<strong><span style="color:#006699">int</span></strong> len) {<span style="color:#008200">// 进行除法运算</span> </wbr></wbr></wbr></wbr>
  20. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>BigDecimal b1 = <strong><span style="color:#006699">new</span></strong> BigDecimal(d1); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  21. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>BigDecimal b2 = <strong><span style="color:#006699">new</span></strong> BigDecimal(d2); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  22. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><strong><span style="color:#006699">return</span></strong> b1.divide(b2,len,BigDecimal.<br> ROUND_HALF_UP).doubleValue(); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  23. <wbr><wbr><wbr><wbr>} </wbr></wbr></wbr></wbr>
  24. <wbr><wbr><wbr><wbr><strong><span style="color:#006699">public</span> <span style="color:#006699"> static</span> <span style="color:#006699">double</span></strong> round(<strong><span style="color:#006699">double</span></strong> d,<br><strong><span style="color:#006699">int</span></strong> len) { <wbr><wbr><wbr><wbr><wbr><span style="color:#008200">// 进行四舍五入</span> </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  25. 操作
  26. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>BigDecimal b1 = <strong><span style="color:#006699">new</span></strong> BigDecimal(d); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  27. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>BigDecimal b2 = <strong><span style="color:#006699">new</span></strong> BigDecimal(<span style="color:#c00000">1</span>); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  28. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span style="color:#008200">// 任何一个数字除以1都是原数字</span> </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  29. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span style="color:#008200">// ROUND_HALF_UP是BigDecimal的一个常量,<br> 表示进行四舍五入的操作</span> </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  30. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><strong><span style="color:#006699">return</span></strong> b1.divide(b2, len,BigDecimal.<br> ROUND_HALF_UP).doubleValue(); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  31. <wbr><wbr><wbr><wbr>} </wbr></wbr></wbr></wbr>
  32. }
  33. public class BigDecimalDemo01 {
  34. <wbr><wbr><wbr><wbr><strong><span style="color:#006699">public</span> <span style="color:#006699"> static</span> <span style="color:#006699">void</span></strong> main(String[] args) { </wbr></wbr></wbr></wbr>
  35. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>System.out.println(<span style="color:#0000ff">"加法运算:"</span> +<br> MyMath.round(MyMath.add(<span style="color:#c00000">10.345</span>, </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  36. 3.333), 1));
  37. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>System.out.println(<span style="color:#0000ff">"乘法运算:"</span> +<br> MyMath.round(MyMath.mul(<span style="color:#c00000">10.345</span>, </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  38. 3.333), 3));
  39. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>System.out.println(<span style="color:#0000ff">"除法运算:"</span> +<br> MyMath.div(<span style="color:#c00000">10.345</span>, <span style="color:#c00000"> 3.333</span>, <span style="color:#c00000">3</span>)); </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  40. <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>System.out.println(<span style="color:#0000ff">"减法运算:"</span> +<br> MyMath.round(MyMath.sub(<span style="color:#c00000">10.345</span>, </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
  41. 3.333), 3));
  42. <wbr><wbr><wbr><wbr>} </wbr></wbr></wbr></wbr>
  43. }
分享到:
评论

相关推荐

    BigDecimal 加减乘除运算

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

    Java中BigDecimal的加减乘除、比较大小与使用注意事项

    在Java编程中,当涉及到需要精确数值计算的场景时,我们通常会使用`BigDecimal`类。这是因为`float`和`double`类型虽然适用于科学计算和工程计算,但它们基于二进制浮点运算,不能保证完全精确的结果。而`BigDecimal...

    6.3BigDecimal加减乘除.txt

    6.3BigDecimal加减乘除.txt

    BigDecimal加减乘除计算.pdf

    本篇文章将详细探讨`BigDecimal`在加减乘除运算中的应用及其注意事项。 首先,`BigDecimal`对象的初始化有两种常见方式。一种是直接传入一个数字,如`new BigDecimal(0.005)`,另一种是传入一个字符串,如`new ...

    bigdecimal加减乘除.md

    bigdecimal加减乘除

    BigDecimal 加减乘除工具包

    BigDecimal加减乘除工具包,提供了BigDecial操作以及保留小数位数

    BigDecimal加减乘除计算

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

    【Java】BigDecimal实现加减乘除运算代码

    `BigDecimal`类提供了加减乘除等运算方法,确保了计算结果的精确性。本文将详细介绍如何使用`BigDecimal`实现加减乘除运算。 首先,`BigDecimal`有多种构造方法,这里主要提及两种: 1. `BigDecimal(double val)`:...

    java中BigDecimal进行加减乘除的基本用法

    当需要进行加减乘除操作时,`BigDecimal` 不支持直接使用传统的算术运算符(+、-、*、/),而是需要调用相应的方法来执行这些操作。以下是 `BigDecimal` 进行加减乘除的基本用法: 1. **加法**:使用 `add()` 方法...

    加减乘除精确算法

    总的来说,精确的加减乘除算法在Java编程中主要通过BigDecimal类来实现,它能够解决浮点数运算的精度问题,适用于金融、科学计算等对精度要求高的场景。使用这样的工具类,开发者可以避免因为数据类型的限制而产生的...

    Java 加减乘除工具类(解决精度损失问题)

    唔,其实里面就是一个工具类,加减乘除、保留两位小数。一共5个方法。。。emmmm.....为啥分这么高呢。因为宝宝想分想疯了。 附代码,有土豪就打赏打赏,没土豪的直接拿去使吧。 package cn.cisdom.base.utils; ...

    Java对BigDecimal常用方法的归类(加减乘除).doc

    Java 中的 BigDecimal 类提供了对浮点数的精确运算,包括加减乘除和四舍五入等操作。在 Java 中,简单类型不能够精确地对浮点数进行运算,因此需要使用 BigDecimal 类来提供精确的浮点数运算。 加法运算 在 Java ...

    JS小数加减乘除运算后位数增加的解决方案

    JS小数加减乘除运算后小数点后产生多位数和计算精度损失的解决方案

    Java计算器 实现最简单的加减乘除、开方、求倒数等

    本文将详细探讨如何使用Java语言实现一个简单的计算器,支持加减乘除、开方以及求倒数等功能。 首先,我们需要了解Java的基础语法和控制结构。Java是一种面向对象的编程语言,它的类和对象概念是实现功能的关键。在...

    计算器--简单的加减乘除

    本文将详述“计算器--简单的加减乘除”这一主题,着重解析如何解决数据精度问题,以及在加减乘除操作中保持计算精确性的方法。 首先,我们需要理解计算机在处理数字时可能面临的精度问题。在大多数编程语言中,如...

    java.math.BigDecimal 操作类

    java.math.BigDecimal 操作类,包含加减乘除、String型加减乘除精度格式化转换计算等

    Java中BigDecimal类的简单用法

    例如,当你需要进行货币的加减乘除时,直接使用double或float可能会造成几分钱的误差,这对于财务系统来说是不可接受的。使用BigDecimal类可以确保每一分钱都计算得准确。此外,BigDecimal类还支持舍入模式...

    BigDecimal-all-last.js

    js中操作Bigdecimal类,包含所有java中bigdecimal的操作,加减乘除,四舍五入,比较等。

    android 计算器 demo 可以实现连续加减乘除运算

    这个"android 计算器 demo"就是一个实例,展示了如何在Android环境中实现连续加减乘除的功能。下面将详细介绍这个Demo涉及的关键知识点。 首先,Android应用开发的基础是Java语言,因此这个计算器Demo的代码大部分...

    BigDecimalUtil工具类

    这里的“穷举法”意味着它列举了所有可能的参数组合情况,如将两个BigDecimal参数进行加减乘除运算,或者将一个String和一个Integer进行运算等。 在实现这些运算的时候,BigDecimalUtil工具类确保了即使传入的参数...

Global site tag (gtag.js) - Google Analytics