小编典典

在JVM上进行浮点运算是否会在所有平台上产生相同的结果?

java

我在运行于多台计算机上的应用程序中使用Java,并且所有计算机都需要获得相同的数学运算结果。使用Java的浮点原语是否安全?还是应该只使用定点数学库?


阅读 267

收藏
2020-12-03

共1个答案

小编典典

一般而言,不。但是,您可以使用strictfp表达式

在FP-strict表达式中,所有中间值都必须是浮点值集或double值集的元素,这意味着所有FP-strict表达式的结果必须是IEEE
754算法对使用单格式和双格式表示的操作数预测的结果。

在不受FP限制的表达式中,为实现留出一定的余地,可以使用扩展的指数范围来表示中间结果。粗略地说,最终结果是,在独占使用浮点值集或双精度值集可能导致上溢或下溢的情况下,计算可能会产生“正确答案”。

2020-12-03