我查过它的功能,但有没有人真的有一个例子,说明在Java中何时会使用strictfp
关键字?有人真的找到了这个用途吗?
把它放在我所有的浮点运算上会有什么副作用吗?
我查过它的功能,但有没有人真的有一个例子,说明在Java中何时会使用strictfp
关键字?有人真的找到了这个用途吗?
把它放在我所有的浮点运算上会有什么副作用吗?
Strictfp确保您在每个平台上从浮点计算中得到完全相同的结果.如果不使用strictfp,JVM实现可以在可用的情况下自由使用额外的精度.
在FP严格表达式中,所有 中间值必须是元素 浮点值集合的或双精度 值设置,这意味着结果 在所有FP严格表达式中,必须为 IEEE 754算法预测的结果 关于使用单个操作数表示的操作数 和双重格式.在一个 不是FP严格的表达式,有些 允许将回旋余地授予 实现以使用扩展的 要表示的指数范围 中间结果;净效果, 粗略地说,那是不是一个 计算可能会产生"正确的 回答"在排他的情况下 使用浮点值SET或DOUBLE 值设置可能会导致溢出或 下溢.
换句话说,就是要确保Write-Once-Run-Anywhere实际上意味着Write-Once-Get-Equally-Wrong-Results-Everywhere.
有了strictfp,你的结果是可移植的,没有它,结果更可能是准确的.