什么时候应该在java中使用“strictfp”关键字?

问题:

我已经查看了这些,但是有没有人有一个例子,当你在Java中使用strictfp关键字?有没有人真的找到了这个用途?
是否会对所有浮点操作产生任何副作用?

回答:

Strictfp确保您在每个平台上的浮点计算中获得完全相同的结果。如果不使用strictfp,则JVM实现可以在可用时自由使用额外的精度。
 From the JLS

在FP-strict表达式中,所有中间值必须是浮点值集合或双重值集合的元素,这意味着所有FP-strict表达式的结果必须是IEEE 754算术对使用单和双格式表示的操作数的算术。在不是FP-strict的表达式中,为实现使用一些余地使用扩展指数范围来表示中间结果;大致来说,净效应是在排他使用浮动值集合或双重值集合可能导致溢出或下溢的情况下,计算可能会产生“正确答案”。

换句话说,这是确定Write-Once-Run-Anywhere实际上意味着Write-Once-Get-Equally-Wrong-Results-Everywhere
使用strictfp,您的结果是便携式的,没有它,它们更有可能是准确的。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: When should I use the “strictfp” keyword in java?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 3 = 2