`

double 相加以下方法可解决

    博客分类:
  • JAVA
 
阅读更多
double sum_debit=0;
for(int m=0;m
System.out.println("借方金额:"+Double.parseDouble(debit_mon[m]));
debit_mona.add(debit_mon[m]);
sum_debit=sum_debit+Double.parseDouble(debit_mon[m]);
System.out.println("借方相加金额"+sum_debit);
}

结果---》:
借方金额:833.29
借方相加金额833.29
借方金额:1777.22
借方相加金额2610.51
借方金额:20738.73
借方相加金额23349.239999999998
借方金额:0.0
借方相加金额23349.239999999998

问题:为什么第三个金额“20738.73”后,会出现那么多小数呢?怎么解决?
主要是我做借贷要比较相等,这样子肯定不能相等了。
--------------------------------------------------------------------------------

由精度问题引起的。2进制和10进制的差异产生这样的结果。

--------------------------------------------------------------------------------

可以自己控制转换,或者使用BigDecimal

--------------------------------------------------------------------------------

自己想出来了!哈哈
BigDecimal b1 = new BigDecimal(Double.toString(Double.parseDouble(debit_mon[m])));
BigDecimal b2 = new BigDecimal(Double.toString(sum_debit));
sum_debit=b2.add(b1).doubleValue();

--------------------------------------------------------------------------------

java的bug
分享到:
评论

相关推荐

    Java Double相加出现的怪事

    Java Double相加出现的怪事 Java 中的浮点数类型 float 和 double 在进行运算时会出现不精确的问题,这是因为计算机无法精确地表示十进制小数。这种问题不仅存在于 Java 中,在其它许多编程语言中也存在。 问题的...

    程序中两个Double类型相加出现误差的解决办法

    在编程中,尤其是在涉及到金融计算或者精确度要求高的领域,我们常常会遇到浮点数(如Double类型)相加时出现误差的问题。这是因为计算机在表示和计算浮点数时采用了二进制,而十进制的浮点数转换为二进制可能会导致...

    double类型精度丢失;double转换到64位整数

    2. **保留特定小数位**: 如果知道需要保留的小数位数,可以先将`double`乘以相应的10的幂,然后进行整数转换,再除回相同幂的10,但这只能解决特定场景下的问题。 3. **使用高精度库**: 如果需要处理大量的浮点计算...

    Java用BigDecimal解决double类型相减时可能存在的误差

    以下是一些使用`BigDecimal`进行精确计算的方法: 1. **相减(Subtract)**: 示例代码中的`sub(Double d1, Double d2)`方法展示了如何使用`BigDecimal`来进行减法运算。首先,将`Double`类型的参数转换成`...

    java中double类型运算结果异常的解决方法

    正确的方法是先将`double`转换为`String`,然后再用`BigDecimal(String val)`构造器创建`BigDecimal`对象。以下是使用`BigDecimal`进行`double`类型四则运算的例子: 1. 相加: ```java public static double add...

    IREPORT问题解决方法.doc

    例如,两个类型为 java.lang.Double 的 field 进行相加,可以使用以下表达式:New Double($F{math}.doubleValue()+$F{english}.doubleValue())。初始表达式可以是 New java.lang.Double(1)。其他数据类型同样可以...

    C语言版数据结构课设--多项式相加

    根据给定的文件信息,我们可以总结出以下关于“C语言版数据结构课设——多项式相加”的详细知识点: ### 一、项目背景与目的 本项目是针对计算机专业学生在学习数据结构课程时的一项实践任务,旨在通过编程实现...

    java实验大数相加.doc

    ### Java实验大数相加知识点总结 #### 一、实验目的 本次实验旨在通过一系列具体的编程任务,加深学生对Java语言的理解与应用能力。具体包括: - 进一步熟悉Java的基本语法及其内置方法。 - 加强对Java程序结构的...

    实现一个多项式的类并求值

    - **加法和减法**:两个多项式相加或相减,可以通过对应系数相加或相减实现。 - **乘法**:可以使用多项式乘法(如Karatsuba算法或FFT)优化计算。 - **打印**:输出多项式的系数和形式。 下面是一个简化的`...

    解决javascript中的浮点数计算不精确问题

    `DoubleCount.js`可能提供了更精确的浮点数计算方法,或者提供了方便的比较和格式化工具。 ```javascript // 引入DoubleCount.js库 const doubleCount = require('DoubleCount.js'); // 使用库中的方法处理...

    shuzhijifen.rar_c语言积分_shuzhijifen_数值积分_积分 C语言_积分程序

    数值积分的基本思想是将积分区间划分为多个小段,然后对每个小段内的函数值取平均,乘以小段的宽度,再将所有小段的结果相加,以此来逼近实际的积分值。常见的数值积分方法有矩形法(如梯形法则)、辛普森法则、...

    java练习题4.txt

    根据提供的文件信息,以下是从标题、描述、标签和部分内容中提取的Java编程知识点: 1. Java练习题概念:Java是一种广泛使用的面向对象的编程语言,经常用于教授编程基础和进阶概念。练习题是学习编程语言的重要...

    编写复数类(Complex类),实现复数的四则运算。

    - **加法**:创建一个名为`add(Complex other)`的方法,将当前复数与另一个复数相加,返回一个新的复数对象。 - **减法**:创建一个名为`subtract(Complex other)`的方法,执行减法操作。 - **乘法**:复数乘法...

    matrix 类定义

    `matrix`类中包含以下私有成员变量: - `int m`: 表示矩阵的行数。 - `int n`: 表示矩阵的列数。 - `double arr[8][8]`: 二维数组,用于存储矩阵中的元素值。 #### 三、Matrix 类构造函数与初始化方法 1. **无参...

    实验4 数组(4学时)

    要求提供以下操作:(1)set(int row, int col, double value):将第row行第col列的元素赋值为value;(2)get(int row,int col):取第row行第col列的元素;(3)width():返回矩阵的列数;(4)height():...

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

    `BigDecimal`提供了许多操作方法,其中`add(BigDecimal val)`方法用于执行加法操作。在上述代码中,`b1.add(b2)`就是将`s1`表示的数和`s2`表示的数相加,结果仍然保存为`BigDecimal`类型的对象。最后,我们通过`...

    PID的最经典应用,含C语言代码

    一种解决积分饱和的方法是引入积分分离技术,即只在误差较小时才积累积分项。 PID控制器是一个十分复杂的课题,它涉及到自动控制理论、信号处理、系统稳定性分析等多个学科领域的知识。因此,通过理解PID并在实际...

    C++程序设计_Answer12~14及复习题.pdf

    通过这些示例,我们可以了解到如何使用C++来定义和实现具体的类,以及如何利用类的特性解决实际问题。例如,在椭圆类中,我们可以通过成员函数轻松地计算椭圆的面积;在三角形类中,我们可以通过成员函数检查给定的...

    Simpson复化求积公式

    该公式通常用于解决那些不能直接求解或者解析积分过于复杂的数学问题。在C++编程中,实现Simpson复化求积公式可以帮助我们快速地对复杂函数进行积分计算。 Simpson公式的基本形式是对一个连续函数f(x)在区间[a, b]...

Global site tag (gtag.js) - Google Analytics