`
TrampEagle
  • 浏览: 23298 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

浮点数的精确计算

阅读更多
本文引自:http://aliax.bokee.com/2184263.html
仅供学习之用,如作者认为侵权,请尽快同本人联系,我会尽快将之去掉。

自Java2以来,Java语言增加了一个关键字strictfp,虽然这个关键字在大多数场合比较少用,但是还是有必要了解一下。

strictfp的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。

你可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字,例如下面的代码:

1. 合法的使用关键字strictfp

strictfp interface A {}

public strictfp class FpDemo1 {
    strictfp void f() {}
}

2. 错误的使用方法

interface A {
    strictfp void f();
}

public class FpDemo2 {
    strictfp FpDemo2() {}
}

一旦使用了关键字strictfp来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都是精确的,符合IEEE-754规范的。例如一个类被声明为strictfp,那么该类中所有的方法都是strictfp的。
分享到:
评论

相关推荐

    Javascript 浮点数精确计算

    总的来说,解决JavaScript中浮点数精确计算的问题需要理解浮点数的存储原理,选择合适的策略,以及可能借助外部库或自定义算法。通过`FloatCumulateV1.html`和`js`这两个文件,我们可以学习到一个具体的实现,这对于...

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

    总结一下,Java中的浮点数精确计算主要是通过`java.math.BigDecimal`类来实现的,而"Java实现的浮点类的精确计算"则可能是一个自定义工具类,封装了`BigDecimal`的操作,以提供方便、准确的浮点数计算服务。...

    precise-math.js:用于解决javascript中浮点数精确计算的问题

    precise-math.js用于解决javascript中浮点数精确计算的问题。目前只有三个方法,可以用于解决Javascript中金额计算的问题。PreciseMath.add(x1,x2) PreciseMath.sub(x1,x2) PreciseMath.mul(x1,x2)

    浮点数减法运算

    linux下实现的浮点数精确计算,可以实现小数位借位

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

    在JavaScript编程中,浮点数计算不精确是一个常见的问题,源于其内部的二进制浮点数表示方式。本文将深入探讨这个问题,并提供解决方案。首先,我们要理解为什么会出现这种不精确性。 JavaScript遵循IEEE 754标准来...

    Java中实现浮点数的精确计算

    ### Java中实现浮点数的精确计算 在Java编程中,使用`float`和`double`类型进行浮点数计算时经常会遇到精度丢失的问题。这是因为浮点数在计算机内部是以二进制形式存储的,而某些十进制小数无法用二进制精确表示,...

    js浮点数精确计算(加、减、乘、除)

    代码如下:<SPAN xss=removed>//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。 //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结果 ...

    java精确计算浮点数工具类

    Java对浮点数的计算是不精确的,比如0.05+0.01结果不是0.06,而是0.060000000000000005,更有甚者,一个数除以0.0,Java是...该类提供了加减乘除四则运算的精确计算方式.在你处理数据的工程中,该类可以给你意想不到的惊喜

    C++实现浮点数精确加法

    C++实现浮点数精确加法是指在计算机编程中对浮点数进行加法运算时,如何确保计算结果的精度。在计算机中,浮点数的表示是有误差的,例如在IEEE 754浮点数表示中,小数部分的表示是有限的,这会导致浮点数加法运算的...

    浮点数在计算机中的存储方式

    当`f`赋值为2.2时,由于2.2不能被精确地表示为有限长度的二进制数,因此在转换为双精度时会出现精度损失,导致输出为2.2000000476837。而当`f`赋值为2.25时,由于2.25能够被准确表示为二进制数(10.01),因此在转换...

    4字节浮点数计算工具

    本文将详细讨论“4字节浮点数计算工具”及其相关的知识点,包括浮点数的表示、16进制与10进制的转换以及在电力通信规约中的应用。 首先,浮点数是一种用于表示实数的数据类型,广泛应用于科学计算和计算机图形学等...

    js浮点数处理转精确值

    还有一种叫做`BigInt`的数据类型,用于处理大整数,它可以避免整数溢出问题,但不适用于浮点数的精确计算。 在实际开发中,有时会使用库或自定义函数来处理浮点数的精确计算。例如,可以使用`decimal.js`这样的库,...

    浮点数在计算机中存储方式.pdf

    例如,将单精度浮点数2.2转换为双精度浮点数时,由于单精度浮点数无法精确表示2.2,转换后可能会出现轻微的数值变化,而2.25能够被单精度浮点数精确表示,转换为双精度浮点数时数值不变。 总之,浮点数在计算机中的...

    浮点数计算与误差分析

    ### 浮点数计算与误差分析 #### 一、浮点数的基本概念 浮点数是一种用于表示实数的数据类型,广泛应用于计算机科学中的数值计算领域。为了更好地理解浮点数及其运算中可能出现的误差问题,我们需要从浮点数的表示...

    自己写的浮点数计算误差分析

    浮点数计算是计算机科学中的一个关键领域,特别是在数值计算、科学计算以及工程应用中扮演着重要角色。然而,由于浮点数在计算机中的表示方式和计算过程中的限制,浮点计算往往会产生误差。这篇自己编写的分析文章...

    js 浮点数加法运算

    javascript浮点数加法运算精确计算方法,能够有效避免无限循环小数的产生

    浮点数在计算机中的表示法.pdf

    这使得双精度浮点数能够存储非常精确的数值,适合于需要高精度计算的领域,如金融计算或科学研究。 指数域在双精度格式中占据 11 位,能够表示从 0 到 2047 的 2048 个指数值。但由于存在偏差(bias),实际的指数...

    精确表达浮点数(详细)

    ### 精确表达浮点数:从理论到实践 #### 浮点数的精确表达:为什么重要? 在计算机科学领域,浮点数是用于表示实数的一种数据类型,广泛应用于数学运算、科学计算和工程设计中。然而,由于计算机内部的二进制存储...

    算法-计算浮点数相除的余(信息学奥赛一本通-T1029)(包含源程序).rar

    在信息学奥赛中,计算浮点数相除的余数是一个常见的问题,这涉及到数值计算、浮点数处理和编程技巧。浮点数运算在计算机科学中扮演着至关重要的角色,尤其是在解决数学和工程问题时。这个题目可能是为了帮助参赛者...

Global site tag (gtag.js) - Google Analytics