`

java 浮点型精度运算

    博客分类:
  • java
 
阅读更多

今天,客户发现导出的报表在运算上存在明显的误差,就是以下数

 

2305

4564.95

5270.1

8979

6162.9

1805

3055

1505

3105

1405

4329.35

1320

1805

1320

2355

1451

386

加起来应该是51123.3 但程序的结果是51123.305,程序的结果和真实结果相差0.005.

 

 

对于一个新手,我就查一下java的浮点型运算。结果发现java直接浮点运算存在移位计算的误差,于是参照网上的解决方法写了个小小的函数

 

	private Float getFloatResult(float a, float b){
		BigDecimal f1= new BigDecimal(Float.toString(a));
		BigDecimal f2= new BigDecimal(Float.toString(b));
		return f1.add(f2).floatValue();
	}
 

 

分享到:
评论

相关推荐

    Java浮点型计算器

    【Java浮点型计算器】是一个基于Java编程语言开发的图形用户界面(GUI)应用程序,它提供了基本的数学运算,包括加法、减法、乘法和除法,针对浮点数进行计算。浮点型计算器的主要特点在于处理带有小数部分的数值,...

    完整版高精度运算模块2.1版.rar

    3. **兼容性**:高精度运算模块2.1版与多种编程语言接口良好,如C++、Python、Java等,方便开发者集成到现有的软件系统中,无需重构大量代码。 4. **易用性**:模块提供了用户友好的API和文档,使得开发人员能够...

    利用java进行浮点型大数计算,支持四则运算和指数函数,三角函数,对数函数,双曲函数等运算,精度可调整

    利用java进行浮点型大数计算,支持四则运算和指数函数,三角函数,对数函数,双曲函数等运算,精度可调整。例如: MATH a=new MATH("1111.111111111111222222222222*33333333333); MATH b=a.eval("Sin(Pi())...

    Java编写的大数运算

    在Java编程语言中,大数运算是一项重要的技术,特别是在处理超过普通整型或浮点型所能表示范围的数值时。Java提供了内置的`BigInteger`类和`BigDecimal`类来支持大数运算,这两个类位于`java.math`包下。本项目...

    jisuanji.rar_浮点开方_浮点运算器

    综上所述,设计一个能够实现浮点型数运算的简单计算器,不仅需要理解浮点数的存储格式和运算规则,还需要熟悉浮点运算器的工作原理。通过对浮点加、减、乘、除、开方、倒数运算的实现,我们可以深入理解计算机系统...

    定点数转浮点运算

    "定点数转浮点运算"涉及到的是将使用定点表示法的数值转换为使用浮点表示法的数值,这一过程在许多计算任务中是必要的,特别是在处理硬件限制或特定算法时。 定点数的表示方式可以分为两种:有符号和无符号。在有...

    高精度运算

    在常规的数据类型如整型或浮点型无法满足计算需求时,高精度运算通过使用特殊的数据结构来存储和操作大整数。在本文中,我们将探讨高精度运算的基本概念、数据类型转换、加法运算以及寻找回文数的方法。 **数据类型...

    精度浮点转换器源码 (By Greatboy)

    标题 "精度浮点转换器源码 (By Greatboy)" 提供了一个关键信息,即这是一个用于转换和显示IEEE浮点数的程序。浮点数在计算机科学中是表示实数的一种方式,尤其在数学计算和科学计算中至关重要。IEEE是电气和电子...

    Java数据与数据运算PPT教案学习.pptx

    Java 数据与数据运算是编程学习中的基础,主要涵盖了 Java 语言中的基本数据类型及其运算规则。以下是关于 Java 基本数据类型和运算的详细解释: 1. **基本数据类型**: - 整型:Java 提供了四种整型类型,包括 `...

    BigDecimal 加减乘除运算

    双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是...

    Java 实例 - 数字求和运算源代码-详细教程.zip

    在数字求和运算中,我们主要关注基本数据类型,如`int`(整型)和`double`(双精度浮点型)。`int`用于存储整数,而`double`则用于存储带有小数点的数值。在这个实例中,我们将使用`int`类型来存储我们的数字和。 ...

    java位运算大全.pdf

    // 双精度浮点型变量 ``` 位运算在Java中具有重要的地位,尤其是在处理底层数据、优化代码性能和实现特定算法时。理解并熟练掌握位运算,对于提升编程能力非常有帮助。在实际编程中,合理利用位运算可以有效减少...

    浮点型数据与IEEE754标准互转

    大多数现代编程语言如C++、Java、Python等都提供了内置函数来实现浮点型数据与IEEE754标准的转换。例如,Python中的`struct`模块可以用来打包和解包浮点数,`binascii`模块则可以进行二进制和十六进制的转换。 转换...

    corejava重点笔记

    浮点型由于二进制表示的局限性,可能导致精度损失,不适合高精度计算。字符型使用UTF-16编码,可以表示Unicode字符集。布尔型只有两个值:false和true,Java不支持非0值与0的直接转换作为真与假。 二、变量 变量是...

    java位运算大全[定义].pdf

    浮点型数据包括单精度(float)和双精度(double)。单精度占32位,遵循IEEE 754标准,双精度占64位,同样遵循该标准。浮点型数据用于表示带有小数部分的数值,其精度和存储需求比整型更高。 在定义变量时,我们可以...

    71.069.JAVA基础教程_Java基本语法-复习3:变量的运算规则(71).rar

    // 声明一个双精度浮点型变量salary并赋值为5000.0 char grade = 'A'; // 声明一个字符型变量grade并赋值为字符'A' boolean isStudent = true; // 声明一个布尔型变量isStudent并赋值为true ``` 接下来,我们来看...

    java 实现加减乘除的方法

    Java提供了多种基本数据类型,包括`int`(整型)、`double`(双精度浮点型)和`float`(单精度浮点型),它们都支持加减乘除运算。例如: ```java int a = 5; int b = 3; int sum = a + b; // 加法 int ...

    基于字符串的高精度浮点计算实现

    在实际编程中,可以使用现有的库,如Python的`decimal`模块或Java的`BigDecimal`类,它们已经实现了这种高精度浮点计算。然而,如果你需要自定义的解决方案或特定的性能优化,那么自己实现这个过程是必要的。 总结...

    复习java基础.pdf

    1. 浮点型数据运算与精度问题:在Java中,浮点型数据(如`float`和`double`)在计算时可能会出现微小的误差。例如,`if(a+1.0=4.0)`这样的判断可能由于浮点运算的精度问题而导致误判。为避免此类问题,开发者应尽量...

Global site tag (gtag.js) - Google Analytics