本文引自: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中浮点数精确计算的问题需要理解浮点数的存储原理,选择合适的策略,以及可能借助外部库或自定义算法。通过`FloatCumulateV1.html`和`js`这两个文件,我们可以学习到一个具体的实现,这对于...
总结一下,Java中的浮点数精确计算主要是通过`java.math.BigDecimal`类来实现的,而"Java实现的浮点类的精确计算"则可能是一个自定义工具类,封装了`BigDecimal`的操作,以提供方便、准确的浮点数计算服务。...
precise-math.js用于解决javascript中浮点数精确计算的问题。目前只有三个方法,可以用于解决Javascript中金额计算的问题。PreciseMath.add(x1,x2) PreciseMath.sub(x1,x2) PreciseMath.mul(x1,x2)
linux下实现的浮点数精确计算,可以实现小数位借位
在JavaScript编程中,浮点数计算不精确是一个常见的问题,源于其内部的二进制浮点数表示方式。本文将深入探讨这个问题,并提供解决方案。首先,我们要理解为什么会出现这种不精确性。 JavaScript遵循IEEE 754标准来...
### Java中实现浮点数的精确计算 在Java编程中,使用`float`和`double`类型进行浮点数计算时经常会遇到精度丢失的问题。这是因为浮点数在计算机内部是以二进制形式存储的,而某些十进制小数无法用二进制精确表示,...
代码如下:<SPAN xss=removed>//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。 //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结果 ...
Java对浮点数的计算是不精确的,比如0.05+0.01结果不是0.06,而是0.060000000000000005,更有甚者,一个数除以0.0,Java是...该类提供了加减乘除四则运算的精确计算方式.在你处理数据的工程中,该类可以给你意想不到的惊喜
C++实现浮点数精确加法是指在计算机编程中对浮点数进行加法运算时,如何确保计算结果的精度。在计算机中,浮点数的表示是有误差的,例如在IEEE 754浮点数表示中,小数部分的表示是有限的,这会导致浮点数加法运算的...
当`f`赋值为2.2时,由于2.2不能被精确地表示为有限长度的二进制数,因此在转换为双精度时会出现精度损失,导致输出为2.2000000476837。而当`f`赋值为2.25时,由于2.25能够被准确表示为二进制数(10.01),因此在转换...
本文将详细讨论“4字节浮点数计算工具”及其相关的知识点,包括浮点数的表示、16进制与10进制的转换以及在电力通信规约中的应用。 首先,浮点数是一种用于表示实数的数据类型,广泛应用于科学计算和计算机图形学等...
还有一种叫做`BigInt`的数据类型,用于处理大整数,它可以避免整数溢出问题,但不适用于浮点数的精确计算。 在实际开发中,有时会使用库或自定义函数来处理浮点数的精确计算。例如,可以使用`decimal.js`这样的库,...
例如,将单精度浮点数2.2转换为双精度浮点数时,由于单精度浮点数无法精确表示2.2,转换后可能会出现轻微的数值变化,而2.25能够被单精度浮点数精确表示,转换为双精度浮点数时数值不变。 总之,浮点数在计算机中的...
### 浮点数计算与误差分析 #### 一、浮点数的基本概念 浮点数是一种用于表示实数的数据类型,广泛应用于计算机科学中的数值计算领域。为了更好地理解浮点数及其运算中可能出现的误差问题,我们需要从浮点数的表示...
浮点数计算是计算机科学中的一个关键领域,特别是在数值计算、科学计算以及工程应用中扮演着重要角色。然而,由于浮点数在计算机中的表示方式和计算过程中的限制,浮点计算往往会产生误差。这篇自己编写的分析文章...
javascript浮点数加法运算精确计算方法,能够有效避免无限循环小数的产生
"Java中的精确计算方法" Java语言中,浮点数是一种常用的数值类型,但是它并不是非常精确的。浮点数的计算结果可能会出现舍入误差,导致结果不符合预期。这种情况在金融计算、科学计算等领域中尤其重要。 IEEE 754...
这使得双精度浮点数能够存储非常精确的数值,适合于需要高精度计算的领域,如金融计算或科学研究。 指数域在双精度格式中占据 11 位,能够表示从 0 到 2047 的 2048 个指数值。但由于存在偏差(bias),实际的指数...
### 精确表达浮点数:从理论到实践 #### 浮点数的精确表达:为什么重要? 在计算机科学领域,浮点数是用于表示实数的一种数据类型,广泛应用于数学运算、科学计算和工程设计中。然而,由于计算机内部的二进制存储...