`
jamesidwardsun
  • 浏览: 1418 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

关于java的浮点数运算

 
阅读更多

1. 0.2+0.7 = 0.8999999999999999;
2.  0.2*0.7 = 0.13999999999999999; 0.2*7 = 1.4000000000000001; 0.2*70 = 14.0;
 冲上面的算式可以看出,java的浮点运算跟我们想要的结果有一定的差距。
关于为什么出现上面的问题,是因为在计算机的存储中,会把数字转换成2进制的形式,但是小数的二进制表示可能是无限循环的。所以会在最后一位进行舍入。就产生了以上问题。
如果要在java里面运行浮点数运算的话,java提供了一个BigDecimal对象。这个对象可以精确的计算浮点数。
如BigDecimal a = new BigDecimal(0.2+"");  这个方法里面的值一定是string行的,要是其他形式的,会出现精度问题。
 BigDecimal b = new BigDecimal(0.7+"");  
a.add(b).floatValue(); 这个值输出的时候就是0.9
a.multiply(b).floatValue();  这个值输出的时候就是0.14
用BigDecimal对象就可以精确计算浮点数了。

分享到:
评论

相关推荐

    java 精确的浮点数运算java 精确的浮点数运算java 精确的浮点数运算

    java 精确的浮点数运算java 精确的浮点数运算java 精确的浮点数运算 java 精确的浮点数运算java 精确的浮点数运算java 精确的浮点数运算 java 精确的浮点数运算java 精确的浮点数运算java 精确的浮点数运算 java ...

    java 精确的浮点数运算 工具类 java 精确的浮点数运算 工具类

    java 精确的浮点数运算 工具类 java 精确的浮点数运算 工具类java 精确的浮点数运算 工具类 java 精确的浮点数运算 工具类java 精确的浮点数运算 工具类 java 精确的浮点数运算 工具类java 精确的浮点数运算 工具类 ...

    Java中如何正确进行浮点数运算

    在Java编程中,浮点数运算常常会遇到精度问题,这是由于浮点数在计算机内部的存储方式导致的。为了确保浮点数运算的准确性,开发者需要采取特定的方法。以下将详细阐述这个问题,并提供正确的处理策略。 首先,理解...

    JAVA中浮点数的运算

    为了更好地理解浮点数运算,我们可以分析`DecimalConvertUtils.java`的代码,看它是如何处理浮点数到`BigDecimal`的转换,以及在`BigDecimal`上进行运算的实现。通常,这样的工具类会包含静态方法,便于在不同地方...

    fp-lib.zip_浮点数运算_浮点运算 c++

    标题中的“fp-lib.zip_浮点数运算_浮点运算 c++”暗示了这是一个关于浮点数运算的库,主要用于C++编程环境。这个压缩包包含了一系列与浮点数计算相关的源代码文件和辅助资源,可能是一个小型的库或者教学示例。 ...

    Android平台浮点数运算应用.pdf

    在Android平台上开发浮点数运算应用,涉及到的关键知识点包括: 1. **Android操作系统**:Android是一个基于Linux内核的操作系统,最初主要用于移动设备,后来由Google推动并广泛应用于智能手机和平板电脑。Android...

    提供精 确的浮点数运算,包括加减乘除和四舍五入

    由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。

    midlet java 浮点运算函数

    做midlet开发,如果需要用到乘幂运算,会用到这个函数。 文件名是float.java 里面包含了pow函数等midlet原本不具备的数学运算函数。

    Java中使用BigDecimal进行浮点数运算

    在Java编程语言中,浮点数运算经常遇到精度问题,特别是在金融或科学计算等领域,对数值的精确性有着严格的要求。这是因为Java中的`float`和`double`数据类型基于二进制浮点数表示,这导致它们无法精确表示某些十...

    Java实现的浮点类的精确计算

    这个文件可能定义了一个名为`ExactFloatCalculator`或类似的类,里面包含了各种浮点数运算的方法,如`add()`, `subtract()`, `multiply()`, `divide()`等,这些方法使用`BigDecimal`进行内部计算。 在实际开发中,...

    java精确计算浮点数工具类

    Java对浮点数的计算是不精确的,比如0.05+0.01结果不是0.06,而是0.060000000000000005,更有甚者,一个数除以0.0,Java是不会抛异常,而是得出无穷大的结果.本工具类解决了上述问题.该类提供了加减乘除四则运算的精确计算...

    Java编写的大数运算

    `BigDecimal`提供了构造函数来创建任意精度的数字,以及多种方法来进行加、减、乘、除等运算,并且可以控制舍入模式,避免浮点数运算中的精度损失问题。 在项目描述中提到了“运用了类的特性”,这通常意味着项目中...

    javaInteger大数据运算.pdf

    在代码中,我们创建了`BigDecimal`对象`b3`和`b4`,并展示了它们之间的加、减、乘、除运算,以及如何解决Java中浮点数运算的精度问题。例如: ```java BigDecimal b3 = new BigDecimal("0.09"); BigDecimal b4 = new...

    java.math包下计算浮点数和整数的类的实例

    Java.math 包下计算浮点数和整数...Java.math 包下计算浮点数和整数的类的实例非常重要, BigInteger 和 BigDecimal 两个类是 Java.math 包中的核心类,它们提供了高精度的整数和浮点数运算,用于解决复杂的数学问题。

    java运算java运算.doc

    在 Java 中,对于浮点数的运算存在精度问题,这是由于浮点数的计算是非精确计算的。这种问题在财务应用中非常重要,因为它可能导致严重的财务错误。 问题描述 在 Java 中,浮点数的计算是非精确计算的,例如: ``...

    Java中浮点数精度问题的解决方法

    为了解决这个问题,Java提供了`java.math.BigDecimal`类,它支持任意精度的浮点数运算。BigDecimal使用一个BigInteger对象来表示无尺度值(unscaled value),并结合一个整数尺度(scale)来实现高精度。使用...

    Java常见问题的笔试题目

    本文将深入解析一个典型的Java笔试题目,该题目不仅考察了应试者对Java基本语法的理解,还测试了他们对整型变量处理、浮点数运算以及Java虚拟机(JVM)内存模型的掌握程度。 ### 题目分析 #### 整型变量比较 首先...

    JAVA浮点数计算精度损失底层原理与解决方案

    在这个示例中,我们使用`BigDecimal`的`add()`, `subtract()`, `multiply()`和`divide()`方法来进行浮点数运算,并且在除法中使用`RoundingMode`来指定舍入模式,确保得到期望的计算结果。 2. 控制浮点数运算的精度...

    Java版计算器支持四则混合运算.+-*/()

    需要注意的是,浮点数运算可能会有精度损失,因为计算机无法精确表示所有十进制小数。 在实现这个计算器时,程序设计的基本结构会包括输入解析、运算逻辑和结果输出三个主要部分。输入解析通常会涉及字符串的处理,...

    java.四则运算器

    首先,我们需要了解Java中的数据类型,特别是`int`、`double`等数值类型,它们用于存储整数和浮点数。`int`用于整数,如1、2、3,而`double`用于小数,如1.2、3.14。在四则运算中,根据输入的数字类型,可能需要进行...

Global site tag (gtag.js) - Google Analytics