`
zhengjiong
  • 浏览: 70785 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

BigDecimal类型(+ - * /)所用的属性

    博客分类:
  • Java
 
阅读更多

 

 BigDecimal类

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

表 BigDecimal类的常用方法

序号

    

类型

    

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.     public static double add(double d1, double d2) {        // 进行加法运算
  5.          BigDecimal b1 = new BigDecimal(d1);
  6.          BigDecimal b2 = new BigDecimal(d2);
  7.         return b1.add(b2).doubleValue();
  8.      }
  9.     public static double sub(double d1, double d2) {        // 进行减法运算
  10.          BigDecimal b1 = new BigDecimal(d1);
  11.          BigDecimal b2 = new BigDecimal(d2);
  12.         return b1.subtract(b2).doubleValue();
  13.      }
  14.     public static double mul(double d1, double d2) {        // 进行乘法运算
  15.          BigDecimal b1 = new BigDecimal(d1);
  16.          BigDecimal b2 = new BigDecimal(d2);
  17.         return b1.multiply(b2).doubleValue();
  18.      }
  19.     public static double div(double d1, double d2,int len) {// 进行除法运算
  20.          BigDecimal b1 = new BigDecimal(d1);
  21.          BigDecimal b2 = new BigDecimal(d2);
  22.         return b1.divide(b2,len,BigDecimal. ROUND_HALF_UP).doubleValue();
  23.      }
  24.     public static double round(double d, int len) {     // 进行四舍五入
  25. 操作
  26.          BigDecimal b1 = new BigDecimal(d);
  27.          BigDecimal b2 = new BigDecimal(1);
  28.         // 任何一个数字除以1都是原数字
  29.         // ROUND_HALF_UP是BigDecimal的一个常量, 表示进行四舍五入的操作
  30.         return b1.divide(b2, len,BigDecimal. ROUND_HALF_UP).doubleValue();
  31.      }
  32. }
  33. public class BigDecimalDemo01 {
  34.     public static void main(String[] args) {
  35.          System.out.println("加法运算:" + MyMath.round(MyMath.add(10.345,
  36. 3.333), 1));
  37.          System.out.println("乘法运算:" + MyMath.round(MyMath.mul(10.345,
  38. 3.333), 3));
  39.          System.out.println("除法运算:" + MyMath.div(10.345, 3.333, 3));
  40.          System.out.println("减法运算:" + MyMath.round(MyMath.sub(10.345,
  41. 3.333), 3));
  42.      }
  43. }

 

分享到:
评论

相关推荐

    java做的科学计算器(支持+-*/括号)

    此外,为了处理大数运算,程序利用了Java提供的`BigDecimal`类,以提供高精度的浮点数运算。 首先,让我们深入了解算符优先分析法。这是一种解析技术,用于解决计算机语言中的表达式求值问题。在这个计算器中,算符...

    JS的高精度计算(BigDecimal)

    alert(new BigDecimal("10").add(new BigDecimal("3E+10"))); //- alert(new BigDecimal("10").subtract(new BigDecimal("3E+10"))); //* alert(new BigDecimal("10").multiply(new BigDecimal("3E+10"))); // / ...

    Java工程师应用技术汇总

    - **BigDecimal**:高精度的浮点数。 - **ThreadLocal**:线程局部变量。 - **ClassLoader**:类加载器。 - **URLClassLoader**:URL类加载器。 - **ArrayList**、**LinkedList**:列表的两种实现。 - **HashMap**、...

    BigDecimal-all-last.js

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

    如何面试java程序员.pdf,这是一份不错的文件

    - **浮点运算误差**:Java中的浮点运算存在精度误差,精确计算应使用BigDecimal类。 5. **字符集**: - **字符类型(char)**:采用Unicode字符集,支持各种语言的字符。 6. **Java编程技能**: - **阅读编程...

    java笔记.docx

    - **BigInteger**和**BigDecimal**: 处理大整数和高精度浮点数。 #### 13. 日期与时间处理 - **Date类**: 用于表示特定的瞬间,即从1970年1月1日00:00:00 GMT以来的毫秒数。 - **SimpleDateFormat类**: 格式化和...

    hibernate注解配置详解

    - **precision**:指定精度,对于`decimal`类型,默认为0。 - **scale**:指定小数位数,默认为0。 - **示例**: ```java @Entity public class Employee { @Column(name = "emp_name", length = 50, nullable...

    java 学习笔记

    - **BigInteger**和**BigDecimal**:处理大整数和高精度浮点数。 3. **Java集合框架**: - **Collection**:所有集合的顶级接口,包括List、Set和Queue。 - **List**:有序的、允许重复元素的集合,如ArrayList...

    EDI mapping 技术语言

    - **BigDecimal变量函数**:对高精度数值类型提供了支持。 - **记录计数器和UNH计数器**:这些计数器帮助跟踪记录的数量,便于统计和错误检测。 - **外部变量和计数器**:用于与其他外部程序交互,扩展了EDI Mapping...

    javascript版BigDecimal类库

    - **类型检查**:由于JavaScript的动态类型特性,确保在进行`BigDecimal`操作前,所有涉及的数值都被转换为`BigDecimal`对象。 - **性能考虑**:虽然`BigDecimal`提供了精确计算,但它的运算速度相比JavaScript原生...

    java基础易忘

    - **类型转换**: Java 支持自动类型转换,例如从较小的数据类型向较大的数据类型转换。 - **初始化**: 变量初始化时,默认情况下不会自动初始化为任何特定值,除非特别指定。 #### 13. 类型转换 - **强制类型转换**...

    Java笔记By HTT1

    如果需要更精确的计算,例如金融计算,则应使用`BigDecimal`类,因为浮点数值存在舍入误差。 #### 其他类型 - **`char`**: 占用2个字节,用于存储Unicode字符。由于Unicode扩展性问题,使用`char`类型时需谨慎。 - ...

    JAVA开发规范

    - **数值计算**:注意浮点数运算的精度问题,必要时使用`BigDecimal`。 - **finalize()**:不推荐使用,垃圾回收机制会自动调用。 - **对象集合**:选择合适的数据结构,如`List`、`Set`、`Map`等,根据需求选择。 -...

    BigDecimal-CPP-master.zip

    BigDecimal是一种可以处理任意精度的十进制浮点数的数据类型,它通常用于金融或会计等需要高精度计算的领域,因为在这些场景中,浮点数的精度丢失可能导致错误的结果。 在计算机科学中,浮点数(如`float`和`double...

    clojure cheatsheet-usletter-color.pdf

    - **BigDecimal**:Clojure支持`BigDecimal`类型,并提供了精度控制的方法。 - `with-precision`: 设置BigDecimal的操作精度。 #### 十、无检查运算 - **Unchecked**:Clojure提供了无检查运算的支持。 - `*...

    最简洁实用的JAVAEE入门开发手册

    - `BigInteger` 和 `BigDecimal` 类用于处理大整数和高精度的浮点数。 - **异常处理**: - **异常分类**:运行时异常(无需显式处理)和检查性异常(必须处理)。 - **异常处理**:通过 `try-catch-finally` 结构...

    java基础详解

    - **BigDecimal**:处理高精度的浮点数运算。 - **NumberFormat**:格式化数字输出。 - **String/StringBuffer/StringBuilder**:字符串操作。 - `String`:不可变字符串。 - `StringBuffer`/`StringBuilder`:可...

    java API文档

    - **java.math**:提供了高精度的数值计算,如BigInteger和BigDecimal类。 - **java.net**:支持网络编程,包括URL处理、Socket编程等。 - **java.nio**:提供了新的I/O操作方式,如基于通道和缓冲区的非阻塞I/O。 ...

    Ruby on Rails 指南 v5.0.1 中文版

    - **BigDecimal的扩展**:说明BigDecimal类的扩展方法。 - **Enumerable的扩展**:解释Enumerable模块的扩展方法。 - **Array的扩展**:列举Array类被扩展后的新方法。 - **Hash的扩展**:展示Hash类的扩展方法。 - ...

    Java基础整理

    - **BigInteger和BigDecimal**:用于处理非常大的整数或小数。 - **System**:提供了一些有用的静态方法,如获取系统属性、执行系统命令等。 - **Runtime**:用于访问当前运行时系统。 - **Math**:提供了基本数学...

Global site tag (gtag.js) - Google Analytics