Java中BigDecimal类的add()的使用详解

Java中的BigDecimal类的使用:

使用Java中的BigDecimal可以进行精确的计算,但是在使用BigDecimal时我们需要注意它的add()方法,使用它自身的add( )方法并不会改变它原始的值,因为初始化BigDecimal是创建一个了个对象,使用add()方法时也等于是创建了一个对象,若要保存这个对象需要再创建一个对象。

句法:

 public BigDecimal add(BigDecimal val);
 public BigDecimal add(BigDecimal val, MathContext ma_co);

add() method is available in java.math package.

add()方法在java.math包中可用。

add(BigDecimal val) method is used to get a BigDecimal that holds the value added this BigDecimal with the given BigDecimal and its scale is calculated by using max([this BigDecimal.scale()] , [BigDecimal val.scale()]).

add(BigDecimal val)方法用于获取一个BigDecimal,该BigDecimal保留使用给定BigDecimal与该BigDecimal相加的值,并使用max([thisBigDecimal.scale()],[BigDecimal val.scale()])计算其小数位数。

add(BigDecimal val, MathContext ma_co) method is used to get a BigDecimal that holds the value-added this BigDecimal with the given BigDecimal based on the given MathContext settings.

add(BigDecimal val,MathContext ma_co)方法用于获取BigDecimal,该BigDecimal包含基于给定MathContext设置的给定BigDecimal与该BigDecimal的增值。

These methods may throw an exception at the time of adding an object.

这些方法在添加对象时可能会引发异常。

ArithmeticException: This exception may throw when the result is not accurate and set the rounding mode "UNNECESSARY".

ArithmeticException :当结果不正确并且将舍入模式设置为“ UNNECESSARY”时,可能会引发此异常。

These are non-static methods and it is accessible with class objects and if we try to access these methods with the class name then we will get an error.

这些是非静态方法,可通过类对象访问,如果尝试使用类名访问这些方法,则会收到错误消息。

使用BigDecimal的计算的错误示例:

public static void main(String[]args){
 double num1=19;
 double num2=20;
 //创建BigDecimal对象
 BigDecimal bd1=new BigDecimal(Double.toString(num1));
 BigDecimal bd1=new BigDecimal(Double.toString(num2));
 //以add方法进行加运算
 bd1.add(num2).doubleValue();
 //输出结果
 System.out.printlin(bd1);//输出19
}

使用BigDecimal的计算的正确示例:

public static void main(String[]args){
 double num1=19;
 double num2=20;
 //创建BigDecimal对象
 BigDecimal bd1=new BigDecimal(Double.toString(num1));
 BigDecimal bd1=new BigDecimal(Double.toString(num2));
 //以add方法进行加运算
 bd1=bd1.add(num2).doubleValue();
 //输出结果
 System.out.printlin(bd1);//输出39
}

综上所述,当我们使用BigDecimal来计算时需要将它计算出的结果进行保存,若不进行操作,则原始值还是不变的。

到此这篇关于Java中BigDecimal类的add()的使用详解的文章就介绍到这了,更多相关Java BigDecimal add()内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

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

    前言 众所周知Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行运算和处理.float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal. BigDecimal所创建的是对象,我们不能使用传统的+.-.*./等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法. 方法中的参数也必须是B

  • java实现大数加法(BigDecimal)的实例代码

    复制代码 代码如下: import java.util.*;import java.io.*;import java.lang.String;import java.math.BigDecimal; public class p1036{    public static void main(String[] args)    {        String s1,s2;        Scanner cin = new Scanner(System.in);                s1

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

    前言 借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的.然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合.但是,商业计算往往要求结果精确,在java 里面,int 的最大值是:2147483647,现在如果想用比这个数大怎么办?换句话说,就是数值较大,这时候就用到了BigDecimal ,关于BigDecimal 的介绍

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

    java.math.BigDecimal BigDecimal一共有4个够造方法,让我先来看看其中的两种用法: 第一种:BigDecimal(double val) Translates a double into a BigDecimal. 第二种:BigDecimal(String val) Translates the String repre sentation of a BigDecimal into a BigDecimal. 使用BigDecimal要用String来够造,要做一个

  • Java中BigDecimal类的add()的使用详解

    Java中的BigDecimal类的使用: 使用Java中的BigDecimal可以进行精确的计算,但是在使用BigDecimal时我们需要注意它的add()方法,使用它自身的add( )方法并不会改变它原始的值,因为初始化BigDecimal是创建一个了个对象,使用add()方法时也等于是创建了一个对象,若要保存这个对象需要再创建一个对象. 句法: public BigDecimal add(BigDecimal val); public BigDecimal add(BigDecimal v

  • Java中BigDecimal类的简单用法

    本文实例讲述了Java中BigDecimal类的简单用法,是Java程序设计中非常实用的技巧,分享给大家供大家参考.具体用法分析如下: 一般来说,一提到Java里面的商业计算,我们都知道不能用float和double,因为他们无法进行精确计算.但是Java的设计者给编程人员提供了一个很有用的类BigDecimal,他可以完善float和double类无法进行精确计算的缺憾.BigDecimal类位于java.maths类包下.首先我们来看下如何构造一个BigDecimal对象.它的构造函数很多,

  • 浅谈java中BigDecimal类的简单用法

    一.BigDecimal概述 ​ Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理.一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度.所以开发中,如果我们需要精确计算的结果,则必须使用

  • Java中BigDecimal类的使用详解

    不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度.Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.BigDecimal所创建的是对象,我们不能使用传统的+.-.*./等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法.方法中的参数也必须是BigDecimal的对象.构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象. 一.BigDecimal转换取Double数据 假设我

  • Java中Validated、Valid 、Validator区别详解

    目录 1. 结论先出 JSR 380 Valid VS Validated 不同点? Validator 2. @Valid和​​​​​​​@Validated 注解 3. 例子 4.使用@Valid嵌套校验 5. 组合使用@Valid和@Validated 进行集合校验 6. 自定义校验 自定义约束注解 工作原理 结论 参考链接: 1. 结论先出 Valid VS Validated 相同点 都可以对方法和参数进行校验 @Valid和@Validated 两种注释都会导致应用标准Bean验证.

  • Java中实现List分隔成子List详解

    目录 前言 一 ListUtils.partition 方法 二  Lists.partition 方法 三 源码分析 四 性能对比 总结 前言 在工作中经常遇到需要将数组分割成多个子数组,然后进行批量处理的需求.那有没有比较优雅的实现呢? 经过多次实践,总结出 ListUtils.partition 和 Lists.partition 两种较好实现 .下面对这两种实现分别进行说明. 一 ListUtils.partition 方法 1.1 引入依赖 <dependency> <grou

  • java 中Excel转shape file的实例详解

    java  中Excel转shape file的实例详解 概述: 本文讲述如何结合geotools和POI实现Excel到shp的转换,再结合前文shp到geojson数据的转换,即可实现用户上传excel数据并在web端的展示功能. 截图: 原始Excel文件 运行耗时 运行结果 代码: package com.lzugis.geotools; import com.lzugis.CommonMethod; import com.vividsolutions.jts.geom.Coordina

  • JAVA 中解密RSA算法JS加密实例详解

    JAVA 中解密RSA算法JS加密实例详解 有这样一个需求,前端登录的用户名密码,密码必需加密,但不可使用MD5,因为后台要检测密码的复杂度,那么在保证安全的前提下将密码传到后台呢,答案就是使用RSA非对称加密算法解决 . java代码 需要依赖 commons-codec 包 RSACoder.Java import org.apache.commons.codec.binary.Base64; import javax.crypto.Cipher; import java.security.

  • Java 中组合模型之对象结构模式的详解

    Java 中组合模型之对象结构模式的详解 一.意图 将对象组合成树形结构以表示"部分-整体"的层次结构.Composite使得用户对单个对象和组合对象的使用具有一致性. 二.适用性 你想表示对象的部分-整体层次结构 你希望用户忽略组合对象与单个对象的不同,用户将统一使用组合结构中的所有对象. 三.结构 四.代码 public abstract class Component { protected String name; //节点名 public Component(String n

  • Java语言class类用法及泛化(详解)

    这篇文章主要介绍了Java语言class类用法及泛化(详解),大家都知道Java程序在运行过程中,对所有的对象进行类型标识,也就是RTTI.这项信息记录了每个对象所属的类.虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类.Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建,具体内容介绍如下: 说白了就是: Class类也是类的一种,只是名字和class关键字高度相似.Java是大小写敏感的语言. Class类的对象内容是你创

随机推荐