`
nannan408
  • 浏览: 1770950 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

架构师之高精度运算--------java的bigdecimal的高精度运算

 
阅读更多
1.前言.
  如题.
2.代码.

	BigDecimal chengjiaoliangStrD=new BigDecimal(chengjiaoliangStr);
		BigDecimal chengjiaojinerStrD=new BigDecimal(chengjiaojinerStr);
		gp.setChengjiaoliang(chengjiaoliangStrD);
		gp.setChengjiaojiner(chengjiaojinerStrD);

		BigDecimal dKaiPai = new BigDecimal(kaiPaiStr).setScale(7);
		BigDecimal dDangqian = new BigDecimal(dangQianStr).setScale(7);
		BigDecimal ff = dKaiPai.subtract(dDangqian);
		if(0==dKaiPai.compareTo(BigDecimal.valueOf(0l))){
			gp.setZhangFu(BigDecimal.valueOf(0l));
			return gp;
		}
		BigDecimal ffResult = ff.divide(dKaiPai,7,BigDecimal.ROUND_HALF_EVEN);


3.注意事项.
  (1)bigdecimal包含double,初始化不用在字符串加其他,直接new BigDecimal ("0.000")或者BigDecimal.valueOf(0l)等即可。
(2)在各种运算的时候,要精确的位数必须预先定义好,否则将按照最低精度来,造成丢失精度。
(3)BigDecimal 支持最广泛的运算,不用担心。
(4)除法需要定义精度否则报错,BigDecimal.ROUND方式也要加上,否则也会报错,加减法不用。
(5)高精度运算推荐BigDecimal 代替double, double的运算很多bug,比如精度和转换等等。
  
0
2
分享到:
评论

相关推荐

    java-BigInteger-BigDecimal类源码

    在Java编程语言中,`BigInteger`和`BigDecimal`是两个重要的类,它们分别用于处理大整数和高精度浮点数。这两个类位于`java.math`包下,为开发者提供了超越基本数据类型(如int、long和double)的计算能力。在深入...

    高精度JSBigDecimal运算

    `BigDecimal`类在Java等其他语言中是专门用来处理高精度十进制数的,它提供了丰富的算术运算方法,确保计算结果的精确性。在JavaScript中,虽然没有内置的`BigDecimal`类,但开发者可以通过第三方库来实现类似的功能...

    BigDecimal-CPP-master.zip

    标题中的"BigDecimal-CPP-master.zip"表明这是一个与BigDecimal类实现相关的C++项目压缩包。BigDecimal是一种可以处理任意精度的十进制浮点数的数据类型,它通常用于金融或会计等需要高精度计算的领域,因为在这些...

    JS的高精度计算(BigDecimal)

    你是否因为JS端的小数计算的精度不足而发愁过呢 其实有个不错的资源可以利用。 引用附件的JS,就可以轻松搞定JS的计算问题了。 使用例 <!-- function //+ alert(new BigDecimal("10").add(new BigDecimal("3E+...

    BigDecimal 加减乘除运算

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

    BigDecimal-all-last.js

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

    java中BigDecimal的操作方法

    在Java编程语言中,BigDecimal是用于处理高精度和可配置精度的十进制数的类。在进行商业计算时,由于浮点数(double和float)存在精度问题,不能保证准确的结果,因此通常推荐使用BigDecimal来确保计算的精确性。本文...

    ArithmeticUtils-高精度数学运算.pdf

    通过封装这些方法,ArithmeticUtils简化了在Java程序中进行高精度运算的过程。 该工具类支持通过方法参数控制运算的精度,包括: 1. 提供精确的加法运算:通过两个参数(被加数和加数)进行加法运算,可以返回加法...

    BigDecimal.js.zip

    总之,BigDecimal.js是一个强大的JavaScript库,专门用于处理大数的高精度计算,通过引入"BigDecimal-all-last.min.js",开发者可以获得精确的大数运算能力,从而避免JavaScript原生数据类型的精度问题。在开发过程...

    java BigDecimal操作

    在Java编程语言中,BigDecimal类是用于处理高精度、大范围浮点数的工具,它在需要精确计算的场景下非常关键。BigDecimal提供了避免浮点数运算中的精度损失的方法,适用于金融、会计等对精度有严格要求的领域。这篇...

    java高精度计算算法与分析

    java高精度计算通常是指使用BigDecimal类来实现高精度计算,通过设置保留的小数位数来控制计算结果的精度。 java高精度计算的重要性 1. 金融应用:在金融应用中,高精度计算是非常重要的,因为小数点后面的一分钱...

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

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

    rubygem-bigdecimal-1.2.0-33.el7_4.x86_64.rpm

    离线安装包,亲测可用

    Java SE程序 BigDecimal类

    Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE程序 BigDecimal类Java SE...

    javascript版BigDecimal类库

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

    BigDecimal基本运算介绍

    `BigDecimal` 类是 Java 中用于高精度浮点数计算的关键工具,主要解决 `float` 和 `double` 类型在处理货币、财务等需要精确计算场景时存在的精度问题。`BigDecimal` 的运算方式与基本数据类型有所不同,因为它涉及...

    Java BigDecimal使用及基本运算(推荐)

    BigDecimal 类在 Java 中是用于处理高精度和大数值计算的,它确保了在计算过程中不会因为浮点数的精度问题而导致结果错误。由于 double 和 float 类型在处理大数或需要绝对精确计算的场景下存在精度损失,因此 ...

    关于java中BigDecimal的简介(csdn)————程序.pdf

    Java中的`BigDecimal`类是用于表示和操作高精度浮点数的重要工具,尤其适用于需要进行精确计算的场景,如财务和货币计算。由于基本数据类型`double`和`float`在进行大数值或高精度计算时可能会导致精度丢失,因此`...

    BigDecimal加减乘除计算

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

    带括号高精度计算器

    【带括号高精度计算器】是一种能够处理复杂数学表达式的软件工具,尤其在处理大整数运算时,它能提供精确的结果。这个计算器的核心功能包括支持括号内的运算顺序,以及进行高达10000位数的计算,这对于常规计算器来...

Global site tag (gtag.js) - Google Analytics